From 6a21970647a145a7c6781e3ea5a9e988f9c96cb6 Mon Sep 17 00:00:00 2001 From: subcrip Date: Sat, 4 May 2024 17:42:15 +0800 Subject: [PATCH] backup --- src/bin/a.cc | 60 ++- src/bin/a.out | Bin 1774840 -> 1855744 bytes src/bin/b.cc | 58 +- src/bin/c.cc | 50 +- src/bin/cf-1893b.cc | 397 ++++++++++++++ src/bin/cf-1895d.cc | 423 +++++++++++++++ src/bin/cf-1904d2.cc | 457 ++++++++++++++++ src/bin/cf-1907g.cc | 480 +++++++++++++++++ src/bin/cf-1916d.cc | 390 ++++++++++++++ src/bin/cf-1918e.cc | 407 ++++++++++++++ src/bin/cf-1919f1.cc | 506 ++++++++++++++++++ src/bin/cf-1929f.cc | 422 +++++++++++++++ src/bin/cf-1943c.cc | 439 +++++++++++++++ src/bin/cf-1946e.cc | 415 ++++++++++++++ src/bin/cf-1956d.cc | 417 +++++++++++++++ src/bin/cf-1965b.cc | 387 ++++++++++++++ src/bin/cf-1968a.cc | 392 ++++++++++++++ src/bin/cf-1968b.cc | 382 +++++++++++++ .../bin/cf-1746d.cc\\" => src/bin/cf-1968c.cc | 155 +++++- src/bin/cf-1968d.cc | 428 +++++++++++++++ src/bin/cf-1968f.cc | 414 ++++++++++++++ src/bin/cf-1968g1.cc | 463 ++++++++++++++++ src/bin/ctext_out.cc | 156 +++++- src/bin/d.cc | 141 +++-- src/bin/e.cc | 99 ++-- src/bin/f.cc | 111 ++-- src/bin/g1.cc | 463 ++++++++++++++++ src/bin/std.in | 15 +- src/bin/template.cc | 1 + src/bin/test.cc | 341 +----------- src/bin/test.py | 20 +- 31 files changed, 8318 insertions(+), 571 deletions(-) create mode 100644 src/bin/cf-1893b.cc create mode 100644 src/bin/cf-1895d.cc create mode 100644 src/bin/cf-1904d2.cc create mode 100644 src/bin/cf-1907g.cc create mode 100644 src/bin/cf-1916d.cc create mode 100644 src/bin/cf-1918e.cc create mode 100644 src/bin/cf-1919f1.cc create mode 100644 src/bin/cf-1929f.cc create mode 100644 src/bin/cf-1943c.cc create mode 100644 src/bin/cf-1946e.cc create mode 100644 src/bin/cf-1956d.cc create mode 100644 src/bin/cf-1965b.cc create mode 100644 src/bin/cf-1968a.cc create mode 100644 src/bin/cf-1968b.cc rename "src/bin/cf-1746d.cc\\" => src/bin/cf-1968c.cc (55%) create mode 100644 src/bin/cf-1968d.cc create mode 100644 src/bin/cf-1968f.cc create mode 100644 src/bin/cf-1968g1.cc create mode 100644 src/bin/g1.cc diff --git a/src/bin/a.cc b/src/bin/a.cc index e84cd2d..11055bb 100644 --- a/src/bin/a.cc +++ b/src/bin/a.cc @@ -1,6 +1,4 @@ -#ifdef ONLINE_JUDGE #pragma GCC optimize("Ofast") -#endif ///////////////////////////////////////////////////////// /** * Useful Macros @@ -300,9 +298,38 @@ int period(string s) { // find the length of shortest recurring period } return n; } + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} ///////////////////////////////////////////////////////// -#define SINGLE_TEST_CASE +// #define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 void dump() {} @@ -312,9 +339,30 @@ void dump_ignore() {} void prep() {} void solve() { - read(ll, x, y, z); - ll i = (long double)5e18 / z; - cout << i * z << ' ' << z << '\n'; + read(int, x); + int sq = sqrt(x); + int res = 0, res_y = -1; + for (int i = 1; i <= sq; ++i) { + if (x % i == 0) { + if (x / i != x) { + int k = (x + x / i - 1) / (x / i) - 1; + int curr = (k + 1) * x / i; + if (curr > res) { + res = curr; + res_y = k * (x / i); + } + } + if (i != x) { + int k = (x + i - 1) / i - 1; + int curr = (k + 1) * i; + if (curr > res) { + res = curr; + res_y = k * i; + } + } + } + } + cout << res_y << '\n'; } int main() { diff --git a/src/bin/a.out b/src/bin/a.out index e0eca592dd8dbefc9a1f1e2383d982ca0720bde7..7f759a9f4c61811741d63f6cf1d839113e4106b7 100755 GIT binary patch delta 629460 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 z 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 z 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�@0*Mbt0)I8v()EVDD)TRMC#_`0AO_qC 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�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 delta 556107 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 !EyEc}C6M>n2e=s}+P%VtnPW`w0c48lX|uAT(TD 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 diff --git a/src/bin/b.cc b/src/bin/b.cc index 98bb3c1..3dcf0c5 100644 --- a/src/bin/b.cc +++ b/src/bin/b.cc @@ -1,6 +1,4 @@ -#ifdef ONLINE_JUDGE #pragma GCC optimize("Ofast") -#endif ///////////////////////////////////////////////////////// /** * Useful Macros @@ -300,9 +298,38 @@ int period(string s) { // find the length of shortest recurring period } return n; } + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} ///////////////////////////////////////////////////////// -#define SINGLE_TEST_CASE +// #define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 void dump() {} @@ -312,23 +339,20 @@ void dump_ignore() {} void prep() {} void solve() { - read(int, n); - vector> a(n, vector(n)); - for (int i =0 ; i < n; ++i) { - for (int j = 0; j < n; ++j) { - cin >> a[i][j]; + read(int, n, m); + read(string, a, b); + int i = 0, j = 0; + while (i < n) { + while (j < m and b[j] != a[i]) { + ++j; } - } - pii res = {}; - for (int i = 0; i < n; ++i) { - for (int j = 0; j < n; ++j) { - read(char, x); - if (a[i][j] != x) { - res = {i, j}; - } + if (j == m) { + cout << i << '\n'; + return; } + ++j, ++i; } - cout << res.first + 1 << ' ' << res.second + 1 << endl; + cout << n << '\n'; } int main() { diff --git a/src/bin/c.cc b/src/bin/c.cc index 13fc234..86e6cb6 100644 --- a/src/bin/c.cc +++ b/src/bin/c.cc @@ -1,6 +1,4 @@ -#ifdef ONLINE_JUDGE #pragma GCC optimize("Ofast") -#endif ///////////////////////////////////////////////////////// /** * Useful Macros @@ -300,9 +298,38 @@ int period(string s) { // find the length of shortest recurring period } return n; } + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} ///////////////////////////////////////////////////////// -#define SINGLE_TEST_CASE +// #define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 void dump() {} @@ -313,17 +340,14 @@ void prep() {} void solve() { read(int, n); - readvec(int, a, n); - vector q; - for (int i = 0; i < n; ++i) { - q.emplace_back(a[i]); - while (q.size() > 1 and q[q.size() - 1] == q[q.size() - 2]) { - int nw = q.back() + 1; - q.pop_back(); q.pop_back(); - q.emplace_back(nw); - } + readvec(int, a, n - 1); + int x = 501; + cout << 501 << ' '; + for (int i = 0; i < n - 1; ++i) { + x += a[i]; + cout << x << ' '; } - cout << q.size() << '\n'; + cout << '\n'; } int main() { diff --git a/src/bin/cf-1893b.cc b/src/bin/cf-1893b.cc new file mode 100644 index 0000000..021e381 --- /dev/null +++ b/src/bin/cf-1893b.cc @@ -0,0 +1,397 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + read(int, n, m); + readvec(int, a, n); + readvec(int, b, m); + sort(b.begin(), b.end(), greater<>()); + vector> prepend(n); + vector idx(n); + iota(idx.begin(), idx.end(), 0); + sort(idx.begin(), idx.end(), [&] (int i, int j) { + if (a[i] == a[j]) { + return i < j; + } + return a[i] > a[j]; + }); + int ptr = 0; + for (auto&& i : idx) { + while (ptr < m and b[ptr] >= a[i]) { + prepend[i].emplace_back(b[ptr]); + ptr += 1; + } + } + vector res; + for (int i = 0; i < n; ++i) { + res.insert(res.end(), prepend[i].begin(), prepend[i].end()); + res.emplace_back(a[i]); + } + while (ptr < m) { + res.emplace_back(b[ptr++]); + } + putvec(res); +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1895d.cc b/src/bin/cf-1895d.cc new file mode 100644 index 0000000..4f900ee --- /dev/null +++ b/src/bin/cf-1895d.cc @@ -0,0 +1,423 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + read(int, n); + const int sz = lg2(n) + 1; + vector> trie(1); + auto insert = [&] (int x) -> void { + int curr = 0; + for (int i = sz; ~i; --i) { + int bit = (x >> i) & 1; + if (not trie[curr][bit]) { + trie[curr][bit] = trie.size(); + trie.push_back({}); + } + curr = trie[curr][bit]; + } + }; + auto query = [&] (int x) -> int { + int curr = 0; + int res = 0; + for (int i = sz; ~i; --i) { + int bit = (x >> i) & 1; + if (trie[curr][1 ^ bit]) { + curr = trie[curr][1 ^ bit]; + res = res << 1 | (1 ^ bit); + } else if (trie[curr][bit]) { + curr = trie[curr][bit]; + res = res << 1 | bit; + } else { + debug(x); + assert(false); + } + } + return res; + }; + int curr = 0; + vector ps; + for (int i = 0; i < n - 1; ++i) { + read(int, x); + curr ^= x; + insert(curr); + ps.emplace_back(curr); + } + for (int i = 0; i < n - 1; ++i) { + if ((i ^ query(i)) == n - 1) { + cout << i << ' '; + for (auto&& x : ps) { + cout << (i ^ x) << ' '; + } + cout << '\n'; + return; + } + } + cout << n - 1 << ' '; + for (auto&& x : ps) { + cout << ((n - 1) ^ x) << ' '; + } + cout << '\n'; +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1904d2.cc b/src/bin/cf-1904d2.cc new file mode 100644 index 0000000..dc88956 --- /dev/null +++ b/src/bin/cf-1904d2.cc @@ -0,0 +1,457 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +template> struct sparse_table { + _Op op; + vector> st; + template + sparse_table(ReverseIterator __first, ReverseIterator __last, _Op&& __operation) { + op = __operation; + int n = distance(__first, __last); + st = vector>(n, vector<_Tp>(int(log2(n) + 1))); + int i = n - 1; + for (auto it = __first; it != __last; ++it) { + st[i][0] = *it; + for (int j = 1; i + (1 << j) <= n; ++j) { + st[i][j] = op(st[i][j - 1], st[i + (1 << (j - 1))][j - 1]); + } + i -= 1; + } + } + _Tp query(size_t __start, size_t __end) { + int s = lg2(__end - __start + 1); + return op(st[__start][s], st[__end - (1 << s) + 1][s]); + } +}; + +auto u_min = [] (int x, int y) -> int { return min(x, y); }; +auto u_max = [] (int x, int y) -> int { return max(x, y); }; +void solve() { + read(int, n); + readvec(int, a, n); + readvec(int, b, n); + sparse_table ST_min(b.rbegin(), b.rend(), u_min), ST_max(b.rbegin(), b.rend(), u_max); + vector bk(n + 1, -1); + vector mark(n); + for (int i = 0; i < n; ++i) { + if (a[i] == b[i]) { + mark[i] = 1; + bk[b[i]] = i; + } else if (a[i] > b[i]) { + cout << "NO\n"; + return; + } else { + if (bk[b[i]] != -1) { + int j = bk[b[i]]; + int l = j, r = i; + while (l < r) { + int mid = l + r >> 1; + if (ST_min.query(mid, i) == b[i] and ST_max.query(mid, i) == b[i]) { + r = mid; + } else { + l = mid + 1; + } + } + if (l == j or ST_min.query(j, l - 1) >= b[i]) { + mark[i] = 1; + } + } + bk[b[i]] = i; + } + } + bk.assign(n + 1, -1); + for (int i = n - 1; ~i; --i) { + if (a[i] == b[i]) { + mark[i] = 1; + bk[b[i]] = i; + } else if (a[i] > b[i]) { + cout << "NO\n"; + return; + } else { + if (bk[b[i]] != -1) { + int j = bk[b[i]]; + int l = i, r = j; + while (l < r) { + int mid = l + r + 1 >> 1; + if (ST_min.query(i, mid) == b[i] and ST_max.query(i, mid) == b[i]) { + l = mid; + } else { + r = mid - 1; + } + } + if (l == j or ST_min.query(l + 1, j) >= b[i]) { + mark[i] = 1; + } + } + bk[b[i]] = i; + } + } + if (count(mark.begin(), mark.end(), 0)) { + cout << "NO\n"; + } else { + cout << "YES\n"; + } +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1907g.cc b/src/bin/cf-1907g.cc new file mode 100644 index 0000000..470908a --- /dev/null +++ b/src/bin/cf-1907g.cc @@ -0,0 +1,480 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + read(int, n); + vector state(n + 1); + for (int i = 1; i <= n; ++i) { + read(char, c); + state[i] = c - '0'; + } + vector ch(n + 1); + vector ind(n + 1); + for (int i = 1; i <= n; ++i) { + read(int, u); + ch[i] = u; + ind[u] += 1; + } + deque dq; + for (int i = 1; i <= n; ++i) { + if (ind[i] == 0) { + dq.emplace_back(i); + } + } + vector seq; + vector vis(n + 1); + while (dq.size()) { + int v = dq.front(); dq.pop_front(); + vis[v] = 1; + if (state[v]) { + seq.emplace_back(v); + state[v] = 0; + state[ch[v]] ^= 1; + } + if (--ind[ch[v]] == 0) { + dq.emplace_back(ch[v]); + } + } + int fail = 0; + vector cycle; + auto dfs = [&] (auto dfs, int v) -> void { + if (vis[v]) { + return; + } + vis[v] = 1; + cycle.emplace_back(v); + dfs(dfs, ch[v]); + }; + for (int i = 1; i <= n; ++i) { + if (not vis[i]) { + // debug(i); + int ptr = i; + while (state[ptr] == 0 and ch[ptr] != i) { + ptr = ch[ptr]; + } + int ptr1 = ptr; + int open = 0, prev = -1; + vector seq1; + while (1) { + if (state[ptr]) { + if (open) { + open = 0; + } else { + open = 1; + prev = ptr; + seq1.emplace_back(ptr); + } + } else if (open) { + seq1.emplace_back(ptr); + } + ptr = ch[ptr]; + if (ptr == ptr1) break; + } + if (open) { + fail = 1; + break; + } + ptr = ch[ptr1]; + while (state[ptr] == 0 and ch[ptr] != ch[ptr1]) { + ptr = ch[ptr]; + } + int ptr2 = ptr; + open = 0, prev = -1; + vector seq2; + while (1) { + if (state[ptr]) { + if (open) { + open = 0; + } else { + open = 1; + prev = ptr; + seq2.emplace_back(ptr); + } + } else if (open) { + seq2.emplace_back(ptr); + } + ptr = ch[ptr]; + if (ptr == ptr2) break; + } + if (seq1.size() < seq2.size()) { + seq.insert(seq.end(), seq1.begin(), seq1.end()); + } else { + seq.insert(seq.end(), seq2.begin(), seq2.end()); + } + ptr = i; + do { + vis[ptr] = 1; + ptr = ch[ptr]; + } while (ptr != i); + } + } + if (fail) { + cout << -1 << '\n'; + } else { + cout << seq.size() << '\n'; + putvec(seq); + } +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1916d.cc b/src/bin/cf-1916d.cc new file mode 100644 index 0000000..522ca42 --- /dev/null +++ b/src/bin/cf-1916d.cc @@ -0,0 +1,390 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + unordered_set, array_hash> choices = {{'1', '6', '9'}, {'9', '6', '1'}}; + read(int, n); + if (n == 1) { + cout << 1 << '\n'; + } else if (n == 3) { + cout << "169\n196\n961\n"; + } else { + int zeros = n / 2 - 1; + int cnt = 0; + while (cnt < n and zeros >= 0) { + for (auto&& [x, y, z] : choices) { + if (cnt == n) break; + cout << x << string(zeros, '0') << y << string(zeros, '0') << z << string(n - 3 - 2 * zeros, '0') << '\n'; + cnt += 1; + } + zeros -= 1; + } + if (cnt < n) { + assert(cnt == n - 1); + cout << "196" << string(n - 3, '0') << '\n'; + } + } +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1918e.cc b/src/bin/cf-1918e.cc new file mode 100644 index 0000000..114ffa5 --- /dev/null +++ b/src/bin/cf-1918e.cc @@ -0,0 +1,407 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + int x = 0; + auto query = [&] (int i) -> int { + // -1 for less, 0 for equal, 1 for more + cout << "? " << i + 1 << endl; + read(char, c); + if (c == '<') { + x -= 1; + return -1; + } else if (c == '>') { + x += 1; + return 1; + } else { + return 0; + } + }; + read(int, n); + vector res(n, INT_MIN); + int f = 1; + while (f) { + f = 0; + for (int i = 0; i < n; ++i) { + if (res[i] == INT_MIN) { + int first = query(i); + if (f == 0 or first == 1) { + while (query(i)) ;; + res[i] = x; + } else if (first == 0) { + res[i] = x; + } + f = 1; + } + } + } + int diff = 1 - *min_element(res.begin(), res.end()); + cout << "! "; + for (int i = 0; i < n; ++i) { + cout << res[i] + diff << " "; + } + cout << endl; +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1919f1.cc b/src/bin/cf-1919f1.cc new file mode 100644 index 0000000..660ed0d --- /dev/null +++ b/src/bin/cf-1919f1.cc @@ -0,0 +1,506 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +template> class segtree { +private: + using size_type = uint64_t; + using info_type = Addable_Info_t; + using tag_type = Tag_t; + size_type _max; + vector d; + vector b; + void pull(size_type p) { + d[p] = d[p * 2] + d[p * 2 + 1]; + } + void push(size_type p, size_type left_len, size_type right_len) { + d[p * 2].apply(b[p], left_len), d[p * 2 + 1].apply(b[p], right_len); + b[p * 2].apply(b[p]), b[p * 2 + 1].apply(b[p]); + b[p] = tag_type(); + } + void set(size_type s, size_type t, size_type p, size_type x, const info_type& c) { + if (s == t) { + d[p] = c; + return; + } + size_type m = s + (t - s >> 1); + if (s != t) push(p, m - s + 1, t - m); + if (x <= m) set(s, m, p * 2, x, c); + else set(m + 1, t, p * 2 + 1, x, c); + d[p] = d[p * 2] + d[p * 2 + 1]; + } + + void range_apply(size_type s, size_type t, size_type p, size_type l, size_type r, const tag_type& c) { + if (l <= s && t <= r) { + d[p].apply(c, t - s + 1); + b[p].apply(c); + return; + } + size_type m = s + (t - s >> 1); + push(p, m - s + 1, t - m); + if (l <= m) range_apply(s, m, p * 2, l, r, c); + if (r > m) range_apply(m + 1, t, p * 2 + 1, l, r, c); + pull(p); + } + info_type range_query(size_type s, size_type t, size_type p, size_type l, size_type r) { + if (l <= s && t <= r) { + return d[p]; + } + size_type m = s + (t - s >> 1); + info_type res = {}; + push(p, m - s + 1, t - m); + if (l <= m) res = res + range_query(s, m, p * 2, l, r); + if (r > m) res = res + range_query(m + 1, t, p * 2 + 1, l, r); + return res; + } + void build(const Sequence& a, size_type s, size_type t, size_type p) { + if (s == t) { + d[p] = a[s]; + return; + } + int m = s + (t - s >> 1); + build(a, s, m, p * 2); + build(a, m + 1, t, p * 2 + 1); + pull(p); + } +public: + segtree(size_type __max) : d(4 * __max), b(4 * __max), _max(__max - 1) {} + segtree(const Sequence& a) : segtree(a.size()) { + build(a, {}, _max, 1); + } + void set(size_type i, const info_type& c) { + set({}, _max, 1, i, c); + } + + void range_apply(size_type l, size_type r, const tag_type& c) { + range_apply({}, _max, 1, l, r, c); + } + void apply(size_type i, const tag_type& c) { + range_apply(i, i, c); + } + info_type range_query(size_type l, size_type r) { + return range_query({}, _max, 1, l, r); + } + info_type query(size_type i) { + return range_query(i, i); + } + Sequence serialize() { + Sequence res = {}; + for (size_type i = 0; i <= _max; ++i) { + res.push_back(query(i)); + } + return res; + } + const vector& get_d() { + return d; + } +}; +struct Tag { + ll val = 0; + void apply(const Tag& rhs) { + val += rhs.val; + } +}; +struct Info { + ll val = INFLL; + void apply(const Tag& rhs, size_t len) { + val += rhs.val; + } +}; +Info operator+(const Info &a, const Info &b) { + return {min(a.val, b.val)}; +} + +void solve() { + read(int, n, q); + readvec(ll, a, n); + readvec(ll, b, n); + for (int i = 0; i < n - 1; ++i) { + read(ll, x); + } + vector ps(n + 1), ss(n + 1); + for (int i = 1; i <= n; ++i) { + ps[i] = ps[i - 1] + a[i - 1]; + } + for (int i = n - 1; ~i; --i) { + ss[i] = ss[i + 1] + b[i]; + } + segtree tr(n + 1); + for (int i = 0; i <= n; ++i) { + tr.set(i, {ps[i] + ss[i]}); + } + // for (auto&& x : tr.serialize()) cerr << x.val << ' '; + // cerr << endl; + while (q--) { + read(ll, p, x, y, z); + // debug(make_tuple(p, x, y , z)); + --p; + tr.range_apply(p + 1, n, {x - a[p]}), a[p] = x; + tr.range_apply(0, p, {y - b[p]}), b[p] = y; + cout << tr.range_query(0, n).val << '\n'; + // for (auto&& x : tr.serialize()) cerr << x.val << ' '; + // cerr << endl; + } +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1929f.cc b/src/bin/cf-1929f.cc new file mode 100644 index 0000000..162c041 --- /dev/null +++ b/src/bin/cf-1929f.cc @@ -0,0 +1,422 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +using mll = MLL; +constexpr int MAXN = 5e5 + 10; +mll fact[MAXN]; +void prep() { + fact[0] = 1; + for (int i = 1; i < MAXN; ++i) { + fact[i] = fact[i - 1] * i; + } +} + +struct node { + int l, r, val; +}; + +void solve() { + auto comb = [&] (int n, int k) -> mll { + if (n < 0 or k < 0 or n < k) return 0; + return fact[n] / fact[k] / fact[n - k]; + }; + read(int, n, c); + vector tr(n + 1); + for (int i = 1; i <= n; ++i) { + read(int, l, r, val); + tr[i] = {l, r, val}; + } + vector a; + auto build = [&] (auto build, int v) -> void { + if (v == -1) return; + build(build, tr[v].l); + a.emplace_back(tr[v].val); + build(build, tr[v].r); + }; + build(build, 1); + a.emplace_back(c); + int start = 0, prev = 1; + mll res = 1; + for (int i = 0; i <= n; ++i) { + if (a[i] == -1) { + ;; + } else { + int m = a[i] - prev + 1; + int l = i - start; + if (l > 0) { + mll curr = 0; + // calculate C(m, k) using dp + mll c1 = 1; + for (int k = 1; k <= min(m, l); ++k) { + c1 = c1 * (m - k + 1) / k; + curr += c1 * comb(l - 1, k - 1); + } + res *= curr; + } + start = i + 1; + prev = a[i]; + } + } + cout << res << '\n'; +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1943c.cc b/src/bin/cf-1943c.cc new file mode 100644 index 0000000..5651500 --- /dev/null +++ b/src/bin/cf-1943c.cc @@ -0,0 +1,439 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +/* zip */ +template vector> zip(const vector& a, const vector& b) { + vector> res; + size_t n = a.size(); + assert(n == b.size()); + for (size_t i = 0; i < n; ++i) { + res.emplace_back(a[i], b[i]); + } + return res; +} + +template vector> cartesian_zip(const vector& a, const vector& b) { + vector> res; + for (auto&& x : a) { + for (auto&& y : b) { + res.emplace_back(x, y); + } + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + read(int, n); + adj(ch, n); + for (int i = 0; i < n - 1; ++i) { + read(int, u, v); + edge(ch, u, v); + } + vector sz(n + 1); + auto get = [&] (auto get, int v, int pa) -> int { + sz[v] = 1; + for (auto&& u : ch[v]) { + if (u == pa) continue; + sz[v] += get(get, u, v); + } + return sz[v]; + }; + get(get, 1, 0); + vector centroid; + auto get2 = [&] (auto get2, int v, int pa) -> void { + int max_sz = n - sz[v]; + for (auto&& u : ch[v]) { + if (u == pa) continue; + get2(get2, u, v); + max_sz = max(max_sz, sz[u]); + } + if (max_sz <= n / 2) { + centroid.emplace_back(0, v); + } + }; + get2(get2, 1, 0); + // debug(centroid); + int m = centroid.size(); + assert(m > 0 and m < 3); + int mx = 0; + auto dfs = [&] (auto dfs, int v, int pa, int layer) -> void { + mx = max(mx, layer); + for (auto&& u : ch[v]) { + if (u == pa) continue; + dfs(dfs, u, v, layer + 1); + } + }; + for (int i = 0; i < m; ++i) { + mx = 0; + dfs(dfs, centroid[i].second, 0, 0); + centroid[i].first = mx; + } + sort(centroid.begin(), centroid.end()); + cout << centroid[0].first + 1 << '\n'; + for (int i = 0; i <= centroid[0].first; ++i) { + cout << centroid[0].second << ' ' << i << '\n'; + } +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1946e.cc b/src/bin/cf-1946e.cc new file mode 100644 index 0000000..1400c21 --- /dev/null +++ b/src/bin/cf-1946e.cc @@ -0,0 +1,415 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +using mll = MLL; +constexpr int MAXN = 2e5 + 10; +mll fact[MAXN]; +void prep() { + fact[0] = 1; + for (int i = 1; i < MAXN; ++i) { + fact[i] = fact[i - 1] * i; + } +} + +void solve() { + auto permu = [&] (int n, int k) -> mll { + if (n < 0 or k < 0 or n < k) return 0; + return fact[n] / fact[n - k]; + }; + auto comb = [&] (int n, int k) -> mll { + if (n < 0 or k < 0 or n < k) return 0; + return fact[n] / fact[n - k] / fact[k]; + }; + read(int, n, m1, m2); + vector a(m1), b(m2); + for (int i = 0; i < m1; ++i) { + read(int, x); + a[i] = x - 1; + } + for (int i = 0; i < m2; ++i) { + read(int, x); + b[i] = x - 1; + } + if (*a.rbegin() != *b.begin() or *a.begin() != 0 or *b.rbegin() != n - 1) { + cout << 0 << '\n'; + return; + } + int center = *a.rbegin(); + reverse(a.begin(), a.end()); + mll res = comb(n - 1, center); + // process the left part + int prev = center; + for (auto&& i : a) { + if (i == center) continue; + res *= permu(prev - 1, prev - i - 1); + prev = i; + } + prev = center; + for (auto&& i : b) { + if (i == center) continue; + res *= permu(n - prev - 2, i - prev - 1); + prev = i; + } + cout << res << '\n'; +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1956d.cc b/src/bin/cf-1956d.cc new file mode 100644 index 0000000..e387c27 --- /dev/null +++ b/src/bin/cf-1956d.cc @@ -0,0 +1,417 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + read(int, n); + readvec(int, a, n); + unordered_map mp; + auto dfs = [&] (auto dfs, int l, int r) -> ll { + if (l > r) return 0; + int mx_pos = l; + for (int i = l; i <= r; ++i) { + if (a[i] > a[mx_pos]) { + mx_pos = i; + } + } + ll keep = a[mx_pos] + dfs(dfs, l, mx_pos - 1) + dfs(dfs, mx_pos + 1, r); + ll not_keep = (r - l + 1) * (r - l + 1); + if (keep >= not_keep) { + mp[{l, r}] = mx_pos; + } else { + mp[{l, r}] = -1; + } + return max(keep, not_keep); + }; + dfs(dfs, 0, n - 1); + ll res = 0; + vector seq; + auto send = [&] (auto send, int l, int r, bool beg) -> void { + if (r < l) return; + send(send, l, r - 1, beg); + if (beg and a[r] == r - l) { + } else { + seq.emplace_back(l, r); + send(send, l, r - 1, false); + } + }; + auto cl = [&] (auto cl, int l, int r) -> void { + if (l > r) return; + // debug(make_tuple(l, r, mp[{l, r}])); + if (mp[{l, r}] != -1) { + cl(cl, l, mp[{l, r}] - 1); + cl(cl, mp[{l, r}] + 1, r); + res += a[mp[{l, r}]]; + } else { + // change all to mex + send(send, l, r, 1); + seq.emplace_back(l, r); + res += (r - l + 1) * (r - l + 1); + } + }; + cl(cl, 0, n - 1); + cout << res << ' ' << seq.size() << '\n'; + for (auto&& [x, y] : seq) cout << x + 1 << ' ' << y + 1 << '\n'; +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1965b.cc b/src/bin/cf-1965b.cc new file mode 100644 index 0000000..4dd551f --- /dev/null +++ b/src/bin/cf-1965b.cc @@ -0,0 +1,387 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + read(ll, n, k); + vector res; + ll sum = 0; + while (sum < n) { + if (sum >= k - 1) { + res.emplace_back(max(k, sum) + 1); + sum += max(k, sum) + 1; + } else { + if (2 * sum + 1 >= k) { + res.emplace_back(k - 1 - sum); + sum += k - 1 - sum; + } else { + res.emplace_back(sum + 1); + sum += sum + 1; + } + } + } + cout << res.size() << '\n'; + putvec(res); +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1968a.cc b/src/bin/cf-1968a.cc new file mode 100644 index 0000000..11055bb --- /dev/null +++ b/src/bin/cf-1968a.cc @@ -0,0 +1,392 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + read(int, x); + int sq = sqrt(x); + int res = 0, res_y = -1; + for (int i = 1; i <= sq; ++i) { + if (x % i == 0) { + if (x / i != x) { + int k = (x + x / i - 1) / (x / i) - 1; + int curr = (k + 1) * x / i; + if (curr > res) { + res = curr; + res_y = k * (x / i); + } + } + if (i != x) { + int k = (x + i - 1) / i - 1; + int curr = (k + 1) * i; + if (curr > res) { + res = curr; + res_y = k * i; + } + } + } + } + cout << res_y << '\n'; +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1968b.cc b/src/bin/cf-1968b.cc new file mode 100644 index 0000000..3dcf0c5 --- /dev/null +++ b/src/bin/cf-1968b.cc @@ -0,0 +1,382 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + read(int, n, m); + read(string, a, b); + int i = 0, j = 0; + while (i < n) { + while (j < m and b[j] != a[i]) { + ++j; + } + if (j == m) { + cout << i << '\n'; + return; + } + ++j, ++i; + } + cout << n << '\n'; +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git "a/src/bin/cf-1746d.cc\\" b/src/bin/cf-1968c.cc similarity index 55% rename from "src/bin/cf-1746d.cc\\" rename to src/bin/cf-1968c.cc index 1ff12f9..86e6cb6 100644 --- "a/src/bin/cf-1746d.cc\\" +++ b/src/bin/cf-1968c.cc @@ -18,8 +18,15 @@ constexpr void __() {} #define __as_typeof(container) decltype(container)::value_type /* type aliases */ +#if LONG_LONG_MAX != INT64_MAX using ll = int64_t; using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; using pii = pair; using pil = pair; using pli = pair; @@ -28,10 +35,14 @@ using pll = pair; /* constants */ constexpr int INF = 0x3f3f3f3f; constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; -constexpr ull MDL = 1e9 + 7; -constexpr ull PRIME = 998'244'353; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; constexpr ll MDL1 = 8784491; constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); /* random */ @@ -107,6 +118,23 @@ struct pair_hash { } }; +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + /* build data structures */ #define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) #define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) @@ -115,6 +143,20 @@ struct pair_hash { #define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) #define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) #define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} /* io */ #define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) @@ -125,10 +167,48 @@ template void __read(T& x, U&... args) { cin >> x; __ #define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) #define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) #define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) -template ostream& operator<<(ostream& out, vector vec) { +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { for (auto&& i : vec) out << i << ' '; return out; } +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} /* pops */ #define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) @@ -153,6 +233,22 @@ ll inverse(ll a, ll b) { return mod(x, b); } +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + /* string algorithms */ vector calc_next(string t) { // pi function of t int n = (int)t.length(); @@ -202,21 +298,62 @@ int period(string s) { // find the length of shortest recurring period } return n; } + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} ///////////////////////////////////////////////////////// - // #define SINGLE_TEST_CASE -// #define DUMP_TEST_CASE 512 +// #define DUMP_TEST_CASE 7219 void dump() {} +void dump_ignore() {} + void prep() {} void solve() { - + read(int, n); + readvec(int, a, n - 1); + int x = 501; + cout << 501 << ' '; + for (int i = 0; i < n - 1; ++i) { + x += a[i]; + cout << x << ' '; + } + cout << '\n'; } int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif untie, cout.tie(NULL); prep(); #ifdef SINGLE_TEST_CASE @@ -225,10 +362,12 @@ int main() { read(int, t); for (int i = 0; i < t; ++i) { #ifdef DUMP_TEST_CASE - if (i + 1 == (DUMP_TEST_CASE)) { + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { dump(); } else { - solve(); + dump_ignore(); } #else solve(); diff --git a/src/bin/cf-1968d.cc b/src/bin/cf-1968d.cc new file mode 100644 index 0000000..515599f --- /dev/null +++ b/src/bin/cf-1968d.cc @@ -0,0 +1,428 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +class quick_union { +private: + vector c, sz; +public: + quick_union(size_t n) : c(n), sz(n) { + iota(c.begin(), c.end(), 0); + sz.assign(n, 1); + } + + size_t query(size_t i) { + if (c[i] != i) c[i] = query(c[i]); + return c[i]; + } + + void merge(size_t i, size_t j) { + if (connected(i, j)) return; + sz[query(j)] += sz[query(i)]; + c[query(i)] = query(j); + } + bool connected(size_t i, size_t j) { + return query(i) == query(j); + } + size_t query_size(size_t i) { + return sz[query(i)]; + } +}; + +void solve() { + read(ll, n, k); + read(int, sa, sb); + vector nxt(n + 1); + for (int i = 1; i <= n; ++i) { + cin >> nxt[i]; + } + vector a(n + 1); + for (int i = 1; i <= n; ++i) { + cin >> a[i]; + } + ll mx = 0; + vector vis(n + 1); + auto dfs = [&] (auto dfs, int i, int past, ll acc) -> void { + if (vis[i] or past == k) return; + vis[i] = 1; + mx = max(mx, acc + (k - past) * a[i]); + dfs(dfs, nxt[i], past + 1, acc + a[i]); + }; + // a + mx = 0, vis.assign(n + 1, false); + dfs(dfs, sa, 0, 0); + ll ra = mx; + // b + mx = 0, vis.assign(n + 1, false); + dfs(dfs, sb, 0, 0); + ll rb = mx; + if (ra > rb) { + cout << "Bodya\n"; + } else if (ra < rb) { + cout << "Sasha\n"; + } else { + cout << "Draw\n"; + } +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1968f.cc b/src/bin/cf-1968f.cc new file mode 100644 index 0000000..36a44de --- /dev/null +++ b/src/bin/cf-1968f.cc @@ -0,0 +1,414 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +void solve() { + read(int, n, q); + readvec(int, a, n); + vector left(q), right(q); + vector qs; + vector> ql(n + 1), qr(n + 1); + for (int i = 0; i < q; ++i) { + read(int, l, r); + qs.emplace_back(l, r); + ql[l].emplace_back(r, i); + qr[r].emplace_back(l, i); + } + vector ps(n + 1); + for (int i = 1; i <= n; ++i) { + ps[i] = ps[i - 1] ^ a[i - 1]; + } + unordered_map mp; + for (int i = 0; i <= n; ++i) { + for (auto&& [l, j] : qr[i]) { + if (!mp.count(ps[l - 1])) { + left[j] = -1; + } else { + left[j] = mp[ps[l - 1]]; + } + } + mp[ps[i]] = i; + } + mp.clear(); + for (int i = n - 1; ~i; --i) { + for (auto&& [r, j] : ql[i + 1]) { + if (!mp.count(ps[r])) { + right[j] = INF; + } else { + right[j] = mp[ps[r]]; + } + } + mp[ps[i]] = i; + } + // debug(ps); + for (int i = 0; i < q; ++i) { + // debug(make_pair(left[i], right[i])); + if (left[i] < right[i] and ps[qs[i].second] ^ ps[qs[i].first - 1]) { + cout << "NO\n"; + } else { + cout << "YES\n"; + } + } +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1968g1.cc b/src/bin/cf-1968g1.cc new file mode 100644 index 0000000..34c5f25 --- /dev/null +++ b/src/bin/cf-1968g1.cc @@ -0,0 +1,463 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +static vector power1, power2; +static const ll b = rd(); +static const ll INV1 = inverse(b, MDL1); +static const ll INV2 = inverse(b, MDL2); +template > +struct hash_deque { + using hash_type = pll; + ll hash1, hash2; + _Sequence seq; + size_t size() { + return seq.size(); + } + void push_back(const _Tp& x) { + hash1 = mod(mod(hash1 * b, MDL1) + mod(x, MDL1), MDL1); + hash2 = mod(mod(hash2 * b, MDL2) + mod(x, MDL2), MDL2); + seq.push_back(x); + } + void push_front(const _Tp& x) { + size_t length = size(); + hash1 = mod(hash1 + mod(mod(x, MDL1) * power1[length], MDL1), MDL1); + hash2 = mod(hash2 + mod(mod(x, MDL2) * power2[length], MDL2), MDL2); + seq.push_front(x); + } + void pop_back() { + _Tp e = seq.back(); seq.pop_back(); + hash1 = mod(mod(hash1 - mod(e, MDL1), MDL1) * INV1, MDL1); + hash2 = mod(mod(hash2 - mod(e, MDL2), MDL2) * INV2, MDL2); + } + void pop_front() { + _Tp e = seq.front(); seq.pop_front(); + int length = seq.size(); + hash1 = mod(hash1 - mod(e * power1[length], MDL1), MDL1); + hash2 = mod(hash2 - mod(e * power2[length], MDL2), MDL2); + } + hash_type hash() { + return {hash1, hash2}; + } + void clear() { + hash1 = hash2 = 0; + seq.clear(); + } + hash_deque(size_t maxn) { + clear(); + int c1 = 1, c2 = 1; + for (int i = power1.size(); i < maxn; ++i) { + power1.push_back(c1); + power2.push_back(c2); + c1 = mod(c1 * b, MDL1); + c2 = mod(c2 * b, MDL2); + } + } +}; + +void solve() { + read(int, n, l, r); + read(string, a); + hash_deque dq(2e5 + 10); + auto work = [&] (int len) -> int { + dq.clear(); + for (int i = 0; i < len; ++i) { + dq.push_back(a[i]); + } + auto target = dq.hash(); + int start = len; + int cnt = 1; + while (start + len <= n) { + dq.clear(); + int f =0; + for (int i = start; i < n; ++i) { + if (i >= start + len) dq.pop_front(); + dq.push_back(a[i]); + if (i >= start + len - 1) { + if (dq.hash() == target) { + cnt += 1; + start = i + 1; + f = 1; + break; + } + } + } + if (!f) { + break; + } + } + return cnt; + }; + int left = 0, right = n; + while (left < right) { + int mid = left + right + 1 >> 1; + if (work(mid) >= l) { + left = mid; + } else { + right = mid - 1; + } + } + cout << left << '\n'; +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/ctext_out.cc b/src/bin/ctext_out.cc index 336f13f..660ed0d 100644 --- a/src/bin/ctext_out.cc +++ b/src/bin/ctext_out.cc @@ -329,36 +329,154 @@ istream& operator>>(istream& in, MLL& num) { } ///////////////////////////////////////////////////////// -// #define SINGLE_TEST_CASE +#define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 void dump() {} void dump_ignore() {} -constexpr int MAXN = 1e6 + 10; -using mll = MLL; -mll fact[MAXN]; -void prep() { - fact[0] = 1; - for (int i = 1; i < MAXN; ++i) { - fact[i] = fact[i - 1] * i; - } -} +void prep() {} -mll comb(int n, int k) { - if (n < 0 or k < 0 or n < k) return 0; - return fact[n] / fact[k] / fact[n - k]; +template> class segtree { +private: + using size_type = uint64_t; + using info_type = Addable_Info_t; + using tag_type = Tag_t; + size_type _max; + vector d; + vector b; + void pull(size_type p) { + d[p] = d[p * 2] + d[p * 2 + 1]; + } + void push(size_type p, size_type left_len, size_type right_len) { + d[p * 2].apply(b[p], left_len), d[p * 2 + 1].apply(b[p], right_len); + b[p * 2].apply(b[p]), b[p * 2 + 1].apply(b[p]); + b[p] = tag_type(); + } + void set(size_type s, size_type t, size_type p, size_type x, const info_type& c) { + if (s == t) { + d[p] = c; + return; + } + size_type m = s + (t - s >> 1); + if (s != t) push(p, m - s + 1, t - m); + if (x <= m) set(s, m, p * 2, x, c); + else set(m + 1, t, p * 2 + 1, x, c); + d[p] = d[p * 2] + d[p * 2 + 1]; + } + + void range_apply(size_type s, size_type t, size_type p, size_type l, size_type r, const tag_type& c) { + if (l <= s && t <= r) { + d[p].apply(c, t - s + 1); + b[p].apply(c); + return; + } + size_type m = s + (t - s >> 1); + push(p, m - s + 1, t - m); + if (l <= m) range_apply(s, m, p * 2, l, r, c); + if (r > m) range_apply(m + 1, t, p * 2 + 1, l, r, c); + pull(p); + } + info_type range_query(size_type s, size_type t, size_type p, size_type l, size_type r) { + if (l <= s && t <= r) { + return d[p]; + } + size_type m = s + (t - s >> 1); + info_type res = {}; + push(p, m - s + 1, t - m); + if (l <= m) res = res + range_query(s, m, p * 2, l, r); + if (r > m) res = res + range_query(m + 1, t, p * 2 + 1, l, r); + return res; + } + void build(const Sequence& a, size_type s, size_type t, size_type p) { + if (s == t) { + d[p] = a[s]; + return; + } + int m = s + (t - s >> 1); + build(a, s, m, p * 2); + build(a, m + 1, t, p * 2 + 1); + pull(p); + } +public: + segtree(size_type __max) : d(4 * __max), b(4 * __max), _max(__max - 1) {} + segtree(const Sequence& a) : segtree(a.size()) { + build(a, {}, _max, 1); + } + void set(size_type i, const info_type& c) { + set({}, _max, 1, i, c); + } + + void range_apply(size_type l, size_type r, const tag_type& c) { + range_apply({}, _max, 1, l, r, c); + } + void apply(size_type i, const tag_type& c) { + range_apply(i, i, c); + } + info_type range_query(size_type l, size_type r) { + return range_query({}, _max, 1, l, r); + } + info_type query(size_type i) { + return range_query(i, i); + } + Sequence serialize() { + Sequence res = {}; + for (size_type i = 0; i <= _max; ++i) { + res.push_back(query(i)); + } + return res; + } + const vector& get_d() { + return d; + } +}; +struct Tag { + ll val = 0; + void apply(const Tag& rhs) { + val += rhs.val; + } +}; +struct Info { + ll val = INFLL; + void apply(const Tag& rhs, size_t len) { + val += rhs.val; + } +}; +Info operator+(const Info &a, const Info &b) { + return {min(a.val, b.val)}; } void solve() { - read(int, l, n); - mll res = 0; - for (int x = 0; 2 * x <= l - 2 * n; ++x) { - // select 2x positions - res += comb(x + n - 1, n - 1) * comb(l - 2 * n - 2 * x + n, n); + read(int, n, q); + readvec(ll, a, n); + readvec(ll, b, n); + for (int i = 0; i < n - 1; ++i) { + read(ll, x); + } + vector ps(n + 1), ss(n + 1); + for (int i = 1; i <= n; ++i) { + ps[i] = ps[i - 1] + a[i - 1]; + } + for (int i = n - 1; ~i; --i) { + ss[i] = ss[i + 1] + b[i]; + } + segtree tr(n + 1); + for (int i = 0; i <= n; ++i) { + tr.set(i, {ps[i] + ss[i]}); + } + // for (auto&& x : tr.serialize()) cerr << x.val << ' '; + // cerr << endl; + while (q--) { + read(ll, p, x, y, z); + // debug(make_tuple(p, x, y , z)); + --p; + tr.range_apply(p + 1, n, {x - a[p]}), a[p] = x; + tr.range_apply(0, p, {y - b[p]}), b[p] = y; + cout << tr.range_query(0, n).val << '\n'; + // for (auto&& x : tr.serialize()) cerr << x.val << ' '; + // cerr << endl; } - cout << (comb(l, 2 * n) - res) * 2 << '\n'; } int main() { diff --git a/src/bin/d.cc b/src/bin/d.cc index e4592de..515599f 100644 --- a/src/bin/d.cc +++ b/src/bin/d.cc @@ -1,6 +1,4 @@ -#ifdef ONLINE_JUDGE #pragma GCC optimize("Ofast") -#endif ///////////////////////////////////////////////////////// /** * Useful Macros @@ -300,9 +298,38 @@ int period(string s) { // find the length of shortest recurring period } return n; } + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} ///////////////////////////////////////////////////////// -#define SINGLE_TEST_CASE +// #define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 void dump() {} @@ -311,63 +338,67 @@ void dump_ignore() {} void prep() {} +class quick_union { +private: + vector c, sz; +public: + quick_union(size_t n) : c(n), sz(n) { + iota(c.begin(), c.end(), 0); + sz.assign(n, 1); + } + + size_t query(size_t i) { + if (c[i] != i) c[i] = query(c[i]); + return c[i]; + } + + void merge(size_t i, size_t j) { + if (connected(i, j)) return; + sz[query(j)] += sz[query(i)]; + c[query(i)] = query(j); + } + bool connected(size_t i, size_t j) { + return query(i) == query(j); + } + size_t query_size(size_t i) { + return sz[query(i)]; + } +}; + void solve() { - read(int, n, m); - vector> fix(n, vector(m)); - auto mark = [&] (int i, int j) { - if (i >= 0 && i < n && j >= 0 && j < m) { - fix[i][j] = true; - } - }; - vector> hs(n, vector(m)); - for (int i = 0; i < n; ++i) { - for (int j = 0; j < m; ++j) { - read(char, c); - if (c == '#') { - mark(i - 1, j); - mark(i + 1, j); - mark(i, j - 1); - mark(i, j + 1); - hs[i][j] = 1; - } - } + read(ll, n, k); + read(int, sa, sb); + vector nxt(n + 1); + for (int i = 1; i <= n; ++i) { + cin >> nxt[i]; } - auto serialize = [&] (int i, int j) { - return i * m + j; - }; - vector> ch(n * m); - for (int i = 0; i < n; ++i) { - for (int j = 0; j < m; ++j) { - if (not fix[i][j]) { - if (i - 1 >= 0) ch[serialize(i, j)].emplace_back(serialize(i - 1, j)); - if (i + 1 < n) ch[serialize(i, j)].emplace_back(serialize(i + 1, j)); - if (j - 1 >= 0) ch[serialize(i, j)].emplace_back(serialize(i, j - 1)); - if (j + 1 < m) ch[serialize(i, j)].emplace_back(serialize(i, j + 1)); - } - } + vector a(n + 1); + for (int i = 1; i <= n; ++i) { + cin >> a[i]; } - int res = 1; - vector vis(n * m); - vector fix_vis(n * m); - int curr = 0; - int tm = 0; - auto dfs = [&] (auto dfs, int v) -> void { - if (vis[v] or fix_vis[v] >= tm) return; - curr += 1; - if (fix[v / m][v % m]) fix_vis[v] = tm; - else vis[v] = 1; - for (auto&& u : ch[v]) { - dfs(dfs, u); - } + ll mx = 0; + vector vis(n + 1); + auto dfs = [&] (auto dfs, int i, int past, ll acc) -> void { + if (vis[i] or past == k) return; + vis[i] = 1; + mx = max(mx, acc + (k - past) * a[i]); + dfs(dfs, nxt[i], past + 1, acc + a[i]); }; - for (int i = 0; i < n * m; ++i) { - if (hs[i / m][i % m] or fix[i / m][i % m] or vis[i]) continue; - ++tm; - curr = 0; - dfs(dfs, i); - res = max(res, curr); + // a + mx = 0, vis.assign(n + 1, false); + dfs(dfs, sa, 0, 0); + ll ra = mx; + // b + mx = 0, vis.assign(n + 1, false); + dfs(dfs, sb, 0, 0); + ll rb = mx; + if (ra > rb) { + cout << "Bodya\n"; + } else if (ra < rb) { + cout << "Sasha\n"; + } else { + cout << "Draw\n"; } - cout << res << '\n'; } int main() { diff --git a/src/bin/e.cc b/src/bin/e.cc index e679784..4f4e981 100644 --- a/src/bin/e.cc +++ b/src/bin/e.cc @@ -1,6 +1,4 @@ -#ifdef ONLINE_JUDGE #pragma GCC optimize("Ofast") -#endif ///////////////////////////////////////////////////////// /** * Useful Macros @@ -300,9 +298,38 @@ int period(string s) { // find the length of shortest recurring period } return n; } + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} ///////////////////////////////////////////////////////// -#define SINGLE_TEST_CASE +// #define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 void dump() {} @@ -311,73 +338,9 @@ void dump_ignore() {} void prep() {} -template -struct BIT { - int n; - vector c; - BIT(size_t n) : n(n), c(n + 1) {} - void add(size_t i, const T& k) { - while (i <= n) { - c[i] += k; - i += lowbit(i); - } - } - T getsum(size_t i) { - T res = {}; - while (i) { - res += c[i]; - i -= lowbit(i); - } - return res; - } -}; - void solve() { read(int, n); - set pos_st, neg_st; - vector a; - for (int i = 0; i < n; ++i) { - read(ll, x, y); - pos_st.emplace(y - x); - neg_st.emplace(y + x); - a.emplace_back(x, y); - } - int N = 0, M = 0; - unordered_map pos_mp, neg_mp; - for (auto&& x : pos_st) pos_mp[x] = ++N; - for (auto&& x : neg_st) neg_mp[x] = ++M; - BIT tr_pos_2(N), tr_pos_2_cnt(N), tr_pos_1(N), tr_pos_1_cnt(N); - BIT tr_neg_2(M), tr_neg_2_cnt(M), tr_neg_1(M), tr_neg_1_cnt(M); - ll res = 0; - for (int i = n - 1; ~i; --i) { - auto&& [x, y] = a[i]; - ll pos_id = y - x, neg_id = y + x; - ll curr = 0; - if (mod(pos_id, 2) == 1) { - curr += (tr_pos_1.getsum(N) - tr_pos_1.getsum(pos_mp[pos_id]) - (tr_pos_1_cnt.getsum(N) - tr_pos_1_cnt.getsum(pos_mp[pos_id])) * pos_id) / 2; - curr += (tr_pos_1_cnt.getsum(pos_mp[pos_id]) * pos_id - tr_pos_1.getsum(pos_mp[pos_id])) / 2; - tr_pos_1.add(pos_mp[pos_id], pos_id); - tr_pos_1_cnt.add(pos_mp[pos_id], 1); - } else { - curr += (tr_pos_2.getsum(N) - tr_pos_2.getsum(pos_mp[pos_id]) - (tr_pos_2_cnt.getsum(N) - tr_pos_2_cnt.getsum(pos_mp[pos_id])) * pos_id) / 2; - curr += (tr_pos_2_cnt.getsum(pos_mp[pos_id]) * pos_id - tr_pos_2.getsum(pos_mp[pos_id])) / 2; - tr_pos_2.add(pos_mp[pos_id], pos_id); - tr_pos_2_cnt.add(pos_mp[pos_id], 1); - } - if (mod(neg_id, 2) == 1) { - curr += (tr_neg_1.getsum(M) - tr_neg_1.getsum(neg_mp[neg_id]) - (tr_neg_1_cnt.getsum(M) - tr_neg_1_cnt.getsum(neg_mp[neg_id])) * neg_id) / 2; - curr += (tr_neg_1_cnt.getsum(neg_mp[neg_id]) * neg_id - tr_neg_1.getsum(neg_mp[neg_id])) / 2; - tr_neg_1.add(neg_mp[neg_id], neg_id); - tr_neg_1_cnt.add(neg_mp[neg_id], 1); - } else { - curr += (tr_neg_2.getsum(M) - tr_neg_2.getsum(neg_mp[neg_id]) - (tr_neg_2_cnt.getsum(M) - tr_neg_2_cnt.getsum(neg_mp[neg_id])) * neg_id) / 2; - curr += (tr_neg_2_cnt.getsum(neg_mp[neg_id]) * neg_id - tr_neg_2.getsum(neg_mp[neg_id])) / 2; - tr_neg_2.add(neg_mp[neg_id], neg_id); - tr_neg_2_cnt.add(neg_mp[neg_id], 1); - } - res += curr; - } - cout << res << '\n'; + unordered_map struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} ///////////////////////////////////////////////////////// -#define SINGLE_TEST_CASE +// #define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 void dump() {} @@ -311,43 +338,53 @@ void dump_ignore() {} void prep() {} -template -struct BIT { - int n; - vector c; - BIT(size_t n) : n(n), c(n + 1) {} - void add(size_t i, const T& k) { - while (i <= n) { - c[i] += k; - i += lowbit(i); - } - } - T getsum(size_t i) { - T res = {}; - while (i) { - res += c[i]; - i -= lowbit(i); - } - return res; - } -}; - void solve() { - read(int, n); + read(int, n, q); readvec(int, a, n); - set st(a.begin(), a.end()); - unordered_map mp; - int N = 0; - for (auto&& x : st) mp[x] = ++N; - ll res = 0; - BIT tr(N); - BIT tr_cnt(N); - for (int i = 0; i < n; ++i) { - res += tr_cnt.getsum(mp[a[i]]) * a[i] - tr.getsum(mp[a[i]]); - tr.add(mp[a[i]], a[i]); - tr_cnt.add(mp[a[i]], 1); + vector left(q), right(q); + vector qs; + vector> ql(n + 1), qr(n + 1); + for (int i = 0; i < q; ++i) { + read(int, l, r); + qs.emplace_back(l, r); + ql[l].emplace_back(r, i); + qr[r].emplace_back(l, i); + } + vector ps(n + 1); + for (int i = 1; i <= n; ++i) { + ps[i] = ps[i - 1] ^ a[i - 1]; + } + unordered_map mp; + for (int i = 0; i <= n; ++i) { + for (auto&& [l, j] : qr[i]) { + if (!mp.count(ps[l - 1])) { + left[j] = -1; + } else { + left[j] = mp[ps[l - 1]]; + } + } + mp[ps[i]] = i; + } + mp.clear(); + for (int i = n - 1; ~i; --i) { + for (auto&& [r, j] : ql[i + 1]) { + if (!mp.count(ps[r])) { + right[j] = INF; + } else { + right[j] = mp[ps[r]]; + } + } + mp[ps[i]] = i; + } + // debug(ps); + for (int i = 0; i < q; ++i) { + // debug(make_pair(left[i], right[i])); + if (left[i] < right[i] and ps[qs[i].second] ^ ps[qs[i].first - 1]) { + cout << "NO\n"; + } else { + cout << "YES\n"; + } } - cout << res << '\n'; } int main() { diff --git a/src/bin/g1.cc b/src/bin/g1.cc new file mode 100644 index 0000000..34c5f25 --- /dev/null +++ b/src/bin/g1.cc @@ -0,0 +1,463 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +#if LONG_LONG_MAX != INT64_MAX +using ll = int64_t; +using ull = uint64_t; +#else +using ll = long long; +using ull = unsigned long long; +#endif +using int128 = __int128_t; +using uint128 = __uint128_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; +constexpr int128 INT128_MAX = numeric_limits::max(); +constexpr uint128 UINT128_MAX = numeric_limits::max(); +constexpr int128 INT128_MIN = numeric_limits::min(); +constexpr uint128 UINT128_MIN = numeric_limits::min(); + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +uniform_int_distribution dist(PRIME); +const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); +struct array_hash { + template + size_t operator()(const Sequence& arr) const { + size_t pw1 = 1, pw2 = 1; + size_t res1 = 0, res2 = 0; + for (auto&& x : arr) { + res1 = (res1 + x * pw1) % __array_hash_mdl1; + res2 = (res2 + x * pw2) % __array_hash_mdl2; + pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; + pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; + } + return res1 + res2; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} +std::ostream& operator<<(std::ostream& dest, const int128& value) { + // https://stackoverflow.com/a/25115163/23881100 + std::ostream::sentry s( dest ); + if ( s ) { + uint128 tmp = value < 0 ? -value : value; + char buffer[ 128 ]; + char* d = std::end( buffer ); + do { + -- d; + *d = "0123456789"[ tmp % 10 ]; + tmp /= 10; + } while ( tmp != 0 ); + if ( value < 0 ) { + -- d; + *d = '-'; + } + int len = std::end( buffer ) - d; + if ( dest.rdbuf()->sputn( d, len ) != len ) { + dest.setstate( std::ios_base::badbit ); + } + } + return dest; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +vector> decompose(ll x) { + vector> res; + for (int i = 2; i * i <= x; i++) { + if (x % i == 0) { + int cnt = 0; + ll pw = 1; + while (x % i == 0) ++cnt, x /= i, pw *= i; + res.emplace_back(i, cnt, pw); + } + } + if (x != 1) { + res.emplace_back(x, 1, x); + } + return res; +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} + +/* modular arithmetic */ +template struct MLL { + ll val; + MLL(ll v = 0) : val(mod(v, mdl)) {} + MLL(const MLL& other) : val(other.val) {} + friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } + friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } + friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } + friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } + friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } + friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLL& rhs) { val = (*this + rhs).val; } + void operator-=(const MLL& rhs) { val = (*this - rhs).val; } + void operator*=(const MLL& rhs) { val = (*this * rhs).val; } + void operator/=(const MLL& rhs) { val = (*this / rhs).val; } + void operator%=(const MLL& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 + +void dump() {} + +void dump_ignore() {} + +void prep() {} + +static vector power1, power2; +static const ll b = rd(); +static const ll INV1 = inverse(b, MDL1); +static const ll INV2 = inverse(b, MDL2); +template > +struct hash_deque { + using hash_type = pll; + ll hash1, hash2; + _Sequence seq; + size_t size() { + return seq.size(); + } + void push_back(const _Tp& x) { + hash1 = mod(mod(hash1 * b, MDL1) + mod(x, MDL1), MDL1); + hash2 = mod(mod(hash2 * b, MDL2) + mod(x, MDL2), MDL2); + seq.push_back(x); + } + void push_front(const _Tp& x) { + size_t length = size(); + hash1 = mod(hash1 + mod(mod(x, MDL1) * power1[length], MDL1), MDL1); + hash2 = mod(hash2 + mod(mod(x, MDL2) * power2[length], MDL2), MDL2); + seq.push_front(x); + } + void pop_back() { + _Tp e = seq.back(); seq.pop_back(); + hash1 = mod(mod(hash1 - mod(e, MDL1), MDL1) * INV1, MDL1); + hash2 = mod(mod(hash2 - mod(e, MDL2), MDL2) * INV2, MDL2); + } + void pop_front() { + _Tp e = seq.front(); seq.pop_front(); + int length = seq.size(); + hash1 = mod(hash1 - mod(e * power1[length], MDL1), MDL1); + hash2 = mod(hash2 - mod(e * power2[length], MDL2), MDL2); + } + hash_type hash() { + return {hash1, hash2}; + } + void clear() { + hash1 = hash2 = 0; + seq.clear(); + } + hash_deque(size_t maxn) { + clear(); + int c1 = 1, c2 = 1; + for (int i = power1.size(); i < maxn; ++i) { + power1.push_back(c1); + power2.push_back(c2); + c1 = mod(c1 * b, MDL1); + c2 = mod(c2 * b, MDL2); + } + } +}; + +void solve() { + read(int, n, l, r); + read(string, a); + hash_deque dq(2e5 + 10); + auto work = [&] (int len) -> int { + dq.clear(); + for (int i = 0; i < len; ++i) { + dq.push_back(a[i]); + } + auto target = dq.hash(); + int start = len; + int cnt = 1; + while (start + len <= n) { + dq.clear(); + int f =0; + for (int i = start; i < n; ++i) { + if (i >= start + len) dq.pop_front(); + dq.push_back(a[i]); + if (i >= start + len - 1) { + if (dq.hash() == target) { + cnt += 1; + start = i + 1; + f = 1; + break; + } + } + } + if (!f) { + break; + } + } + return cnt; + }; + int left = 0, right = n; + while (left < right) { + int mid = left + right + 1 >> 1; + if (work(mid) >= l) { + left = mid; + } else { + right = mid - 1; + } + } + cout << left << '\n'; +} + +int main() { +#if __cplusplus < 201703L || defined(_MSC_VER) && !defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t < (DUMP_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/std.in b/src/bin/std.in index a00bcca..0b505fc 100644 --- a/src/bin/std.in +++ b/src/bin/std.in @@ -1,5 +1,10 @@ -4 -2 1 -3 1 -420 69 -6 2 +5 5 +10 3 8 9 2 +3 4 10 8 1 +1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000 +5 4 9 1000000000000000000 +1 1 1 1000000000000000000 +2 7 4 1000000000000000000 +4 1 1 1000000000000000000 +1 8 3 1000000000000000000 + diff --git a/src/bin/template.cc b/src/bin/template.cc index c07f5ef..c212625 100644 --- a/src/bin/template.cc +++ b/src/bin/template.cc @@ -339,6 +339,7 @@ void dump_ignore() {} void prep() {} void solve() { + } int main() { diff --git a/src/bin/test.cc b/src/bin/test.cc index e9c3948..c03ad35 100644 --- a/src/bin/test.cc +++ b/src/bin/test.cc @@ -1,343 +1,6 @@ -#ifdef ONLINE_JUDGE -#pragma GCC optimize("Ofast") -#endif -///////////////////////////////////////////////////////// -/** - * Useful Macros - * by subcrip - * (requires C++17) - */ - -#include +#include using namespace std; -/* macro helpers */ -#define __NARGS(...) std::tuple_size::value -#define __DECOMPOSE_S(a, x) auto x = a; -#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; -constexpr void __() {} -#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() -#define __as_typeof(container) decltype(container)::value_type - -/* type aliases */ -#if LONG_LONG_MAX != INT64_MAX -using ll = int64_t; -using ull = uint64_t; -#else -using ll = long long; -using ull = unsigned long long; -#endif -using int128 = __int128_t; -using uint128 = __uint128_t; -using pii = pair; -using pil = pair; -using pli = pair; -using pll = pair; - -/* constants */ -constexpr int INF = 0x3f3f3f3f; -constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; -constexpr ll MDL = 1e9 + 7; -constexpr ll PRIME = 998'244'353; -constexpr ll MDL1 = 8784491; -constexpr ll MDL2 = PRIME; -constexpr int128 INT128_MAX = numeric_limits::max(); -constexpr uint128 UINT128_MAX = numeric_limits::max(); -constexpr int128 INT128_MIN = numeric_limits::min(); -constexpr uint128 UINT128_MIN = numeric_limits::min(); - -/* random */ - -mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); - -/* bit-wise operations */ -#define lowbit(x) ((x) & -(x)) -#define popcount(x) (__builtin_popcountll(ll(x))) -#define parity(x) (__builtin_parityll(ll(x))) -#define msp(x) (63LL - __builtin_clzll(ll(x))) -#define lsp(x) (__builtin_ctzll(ll(x))) - -/* arithmetic operations */ -#define mod(x, y) ((((x) % (y)) + (y)) % (y)) - -/* fast pairs */ -#define upair ull -#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) -#define u1(p) ((p) >> 32) -#define u2(p) ((p) & ((1ULL << 32) - 1)) -#define ult std::less -#define ugt std::greater - -#define ipair ull -#define imake(x, y) (umake(x, y)) -#define i1(p) (int(u1(ll(p)))) -#define i2(p) (ll(u2(p) << 32) >> 32) -struct ilt { - bool operator()(const ipair& a, const ipair& b) const { - if (i1(a) == i1(b)) return i2(a) < i2(b); - else return i1(a) < i1(b); - } -}; -struct igt { - bool operator()(const ipair& a, const ipair& b) const { - if (i1(a) == i1(b)) return i2(a) > i2(b); - else return i1(a) > i1(b); - } -}; - -/* conditions */ -#define loop while (1) -#define if_or(var, val) if (!(var == val)) var = val; else -#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) -#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) - -/* hash */ -struct safe_hash { - // https://codeforces.com/blog/entry/62393 - static uint64_t splitmix64(uint64_t x) { - // http://xorshift.di.unimi.it/splitmix64.c - x += 0x9e3779b97f4a7c15; - x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; - x = (x ^ (x >> 27)) * 0x94d049bb133111eb; - return x ^ (x >> 31); - } - - size_t operator()(uint64_t x) const { - static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); - return splitmix64(x + FIXED_RANDOM); - } -}; - -struct pair_hash { - template - size_t operator()(const pair& a) const { - auto hash1 = safe_hash()(a.first); - auto hash2 = safe_hash()(a.second); - if (hash1 != hash2) { - return hash1 ^ hash2; - } - return hash1; - } -}; - -uniform_int_distribution dist(PRIME); -const size_t __array_hash_b = 31, __array_hash_mdl1 = dist(rd), __array_hash_mdl2 = dist(rd); -struct array_hash { - template - size_t operator()(const Sequence& arr) const { - size_t pw1 = 1, pw2 = 1; - size_t res1 = 0, res2 = 0; - for (auto&& x : arr) { - res1 = (res1 + x * pw1) % __array_hash_mdl1; - res2 = (res2 + x * pw2) % __array_hash_mdl2; - pw1 = (pw1 * __array_hash_b) % __array_hash_mdl1; - pw2 = (pw2 * __array_hash_b) % __array_hash_mdl2; - } - return res1 + res2; - } -}; - -/* build data structures */ -#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) -#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) -#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) -#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) -#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) -#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) -#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) -template pair> discretize(Iterator __first, Iterator __last) { - set st(__first, __last); - size_t N = 0; - map mp; - for (auto&& x : st) mp[x] = ++N; - return {N, mp}; -} -template pair> unordered_discretize(Iterator __first, Iterator __last) { - set st(__first, __last); - size_t N = 0; - unordered_map mp; - for (auto&& x : st) mp[x] = ++N; - return {N, mp}; -} - -/* io */ -#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) -template void __read(T& x) { cin >> x; } -template void __read(T& x, U&... args) { cin >> x; __read(args...); } -#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) -#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) -#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) -#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) -#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) -template ostream& operator<<(ostream& out, const pair& p) { - out << "{" << p.first << ", " << p.second << "}"; - return out; -} -template -void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { - using swallow = int[]; // guaranties left to right order - (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; -} -template -decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { - os << "{"; - print_tuple_impl(os, t, std::index_sequence_for{}); - return os << "}"; -} -template ostream& operator<<(ostream& out, const vector& vec) { - for (auto&& i : vec) out << i << ' '; - return out; -} -std::ostream& operator<<(std::ostream& dest, const int128& value) { - // https://stackoverflow.com/a/25115163/23881100 - std::ostream::sentry s( dest ); - if ( s ) { - uint128 tmp = value < 0 ? -value : value; - char buffer[ 128 ]; - char* d = std::end( buffer ); - do { - -- d; - *d = "0123456789"[ tmp % 10 ]; - tmp /= 10; - } while ( tmp != 0 ); - if ( value < 0 ) { - -- d; - *d = '-'; - } - int len = std::end( buffer ) - d; - if ( dest.rdbuf()->sputn( d, len ) != len ) { - dest.setstate( std::ios_base::badbit ); - } - } - return dest; -} - -/* pops */ -#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) -#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) -#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) - -/* math */ -constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } - -void __exgcd(ll a, ll b, ll& x, ll& y) { - if (b == 0) { - x = 1, y = 0; - return; - } - __exgcd(b, a % b, y, x); - y -= a / b * x; -} - -ll inverse(ll a, ll b) { - ll x, y; - __exgcd(a, b, x, y); - return mod(x, b); -} - -vector> decompose(ll x) { - vector> res; - for (int i = 2; i * i <= x; i++) { - if (x % i == 0) { - int cnt = 0; - ll pw = 1; - while (x % i == 0) ++cnt, x /= i, pw *= i; - res.emplace_back(i, cnt, pw); - } - } - if (x != 1) { - res.emplace_back(x, 1, x); - } - return res; -} - -/* string algorithms */ -vector calc_next(string t) { // pi function of t - int n = (int)t.length(); - vector pi(n); - for (int i = 1; i < n; i++) { - int j = pi[i - 1]; - while (j > 0 && t[i] != t[j]) j = pi[j - 1]; - if (t[i] == t[j]) j++; - pi[i] = j; - } - return pi; -} -vector calc_z(string t) { // z function of t - int m = t.length(); - vector z; - z.push_back(m); - pair prev = {1, -1}; - for (int i = 1; i < m; ++i) { - if (z[i - prev.first] + i <= prev.second) { - z.push_back(z[i - prev.first]); - } else { - int j = max(i, prev.second + 1); - while (j < m && t[j] == t[j - i]) ++j; - z.push_back(j - i); - prev = {i, j - 1}; - } - } - return z; -} -vector kmp(string s, string t) { // find all t in s - string cur = t + '#' + s; - int sz1 = s.size(), sz2 = t.size(); - vector v; - vector lps = calc_next(cur); - for (int i = sz2 + 1; i <= sz1 + sz2; i++) { - if (lps[i] == sz2) v.push_back(i - 2 * sz2); - } - return v; -} -int period(string s) { // find the length of shortest recurring period - int n = s.length(); - auto z = calc_z(s); - for (int i = 1; i <= n / 2; ++i) { - if (n % i == 0 && z[i] == n - i) { - return i; - } - } - return n; -} - -template struct MLL { - ll val; - MLL(ll v = 0) : val(mod(v, mdl)) {} - MLL(const MLL& other) : val(other.val) {} - friend MLL operator+(const MLL& lhs, const MLL& rhs) { return mod(lhs.val + rhs.val, mdl); } - friend MLL operator-(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - rhs.val, mdl); } - friend MLL operator*(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * rhs.val, mdl); } - friend MLL operator/(const MLL& lhs, const MLL& rhs) { return mod(lhs.val * mod(inverse(rhs.val, mdl), mdl), mdl); } - friend MLL operator%(const MLL& lhs, const MLL& rhs) { return mod(lhs.val - (lhs / rhs).val, mdl); } - friend bool operator==(const MLL& lhs, const MLL& rhs) { return lhs.val == rhs.val; } - friend bool operator!=(const MLL& lhs, const MLL& rhs) { return lhs.val != rhs.val; } - void operator+=(const MLL& rhs) { val = (*this + rhs).val; } - void operator-=(const MLL& rhs) { val = (*this - rhs).val; } - void operator*=(const MLL& rhs) { val = (*this * rhs).val; } - void operator/=(const MLL& rhs) { val = (*this / rhs).val; } - void operator%=(const MLL& rhs) { val = (*this % rhs).val; } -}; - -template -ostream& operator<<(ostream& out, const MLL& num) { - return out << num.val; -} - -template -istream& operator>>(istream& in, MLL& num) { - return in >> num.val; -} - -///////////////////////////////////////////////////////// - int main() { - using mll = MLL; - vector fact(1000), pw(1000); - fact[0] = 1, pw[0] = 1; - for (int i = 1; i < 1000; ++i) { - fact[i] = fact[i - 1] * i; - pw[i] = pw[i - 1] * 2; - } - cout << (fact[420] / fact[2 * 69] / fact[420 - 2 * 69] / pw[69]) << '\n'; + cout << "hello, world!" << '\n'; } diff --git a/src/bin/test.py b/src/bin/test.py index 5a763eb..0ed2a90 100644 --- a/src/bin/test.py +++ b/src/bin/test.py @@ -1,5 +1,17 @@ -s, k = (int(x) for x in input().split(' ')) +from random import shuffle, randint +from itertools import pairwise +from os import system + +while True: + n = randint(2, 10) + a = list(range(n)) + shuffle(a) + inp = [str(i ^ j) for i, j in pairwise(a)] + with open('std.in', 'w') as f: + f.write(str(n) + '\n' + ' '.join(inp)) + ret = system('./a.out < std.in > /dev/null') + if ret: + print(a) + print(inp) + break -res = 0 -for i in range(k): - res = max(res, )