From 5a8b80dc210d07665d6d3e02d490fac86ab4aecb Mon Sep 17 00:00:00 2001 From: arielherself Date: Sun, 30 Jun 2024 20:21:18 +0800 Subject: [PATCH] backup --- src/bin/.nvim.lua | 2 +- src/bin/a.cc | 86 ++--- src/bin/a.out | Bin 2341856 -> 2296440 bytes src/bin/abc-355f.cc | 590 ++++++++++++++++++++++++++++++++++ src/bin/abc-357f.cc | 663 ++++++++++++++++++++++++++++++++++++++ src/bin/abc-359f.cc | 525 ++++++++++++++++++++++++++++++ src/bin/arc-180a.cc | 537 +++++++++++++++++++++++++++++++ src/bin/arc-180b.cc | 549 ++++++++++++++++++++++++++++++++ src/bin/arc-180c.cc | 552 ++++++++++++++++++++++++++++++++ src/bin/b.cc | 103 +++--- src/bin/c.cc | 123 ++++---- src/bin/cf-1534e.cc | 566 +++++++++++++++++++++++++++++++++ src/bin/cf-1536e.cc | 536 +++++++++++++++++++++++++++++++ src/bin/cf-1537e1.cc | 535 +++++++++++++++++++++++++++++++ src/bin/cf-1537e2.cc | 555 ++++++++++++++++++++++++++++++++ src/bin/cf-1538e.cc | 635 +++++++++++++++++++++++++++++++++++++ src/bin/cf-1547g.cc | 738 +++++++++++++++++++++++++++++++++++++++++++ src/bin/cf-1550d.cc | 544 +++++++++++++++++++++++++++++++ src/bin/cf-1553f.cc | 661 ++++++++++++++++++++++++++++++++++++++ src/bin/cf-1989c.cc | 552 ++++++++++++++++++++++++++++++++ src/bin/cf-1989d.cc | 558 ++++++++++++++++++++++++++++++++ src/bin/cf-1989e.cc | 551 ++++++++++++++++++++++++++++++++ src/bin/ctext_out.cc | 35 +- src/bin/d.cc | 126 ++++---- src/bin/std.in | 18 +- src/bin/template.cc | 3 + src/bin/test.cc | 31 -- src/bin/test.py | 42 ++- 28 files changed, 10123 insertions(+), 293 deletions(-) create mode 100644 src/bin/abc-355f.cc create mode 100644 src/bin/abc-357f.cc create mode 100644 src/bin/abc-359f.cc create mode 100644 src/bin/arc-180a.cc create mode 100644 src/bin/arc-180b.cc create mode 100644 src/bin/arc-180c.cc create mode 100644 src/bin/cf-1534e.cc create mode 100644 src/bin/cf-1536e.cc create mode 100644 src/bin/cf-1537e1.cc create mode 100644 src/bin/cf-1537e2.cc create mode 100644 src/bin/cf-1538e.cc create mode 100644 src/bin/cf-1547g.cc create mode 100644 src/bin/cf-1550d.cc create mode 100644 src/bin/cf-1553f.cc create mode 100644 src/bin/cf-1989c.cc create mode 100644 src/bin/cf-1989d.cc create mode 100644 src/bin/cf-1989e.cc diff --git a/src/bin/.nvim.lua b/src/bin/.nvim.lua index a297068..222c8e1 100644 --- a/src/bin/.nvim.lua +++ b/src/bin/.nvim.lua @@ -1,7 +1,7 @@ vim.api.nvim_create_autocmd("FileType", { pattern = "cpp", callback = function() - vim.api.nvim_buf_set_keymap(0, 'n', "b", '10spte ctext -i $(gcc -xc++ /dev/null -E -Wp,-v 2>&1 | sed -n "s,^ ,,p" | tr "\\n" ",") < % > ctext_out.cc && clang++ -std=c++17 -DONLINE_JUDGE -Wl,-z,stack-size=268435456 -Wall -Ofast -g -fsanitize=address -fsanitize=undefined ctext_out.cc && ./a.out < std.ini', { + vim.api.nvim_buf_set_keymap(0, 'n', "b", '10spte ctext -i $(gcc -xc++ /dev/null -E -Wp,-v 2>&1 | sed -n "s,^ ,,p" | tr "\\n" ",") < % > ctext_out.cc && clang++ -std=c++17 -DONLINE_JUDGE -Wl,-z,stack-size=268435456 -Wall -Ofast -g -fsanitize=address -fsanitize=undefined ctext_out.cc && time ./a.out < std.ini', { silent = true, noremap = true }) diff --git a/src/bin/a.cc b/src/bin/a.cc index 9b7e3f1..6428345 100644 --- a/src/bin/a.cc +++ b/src/bin/a.cc @@ -23,47 +23,22 @@ using ull = uint64_t; #else using ll = long long; using ull = unsigned long long; -using ld = long double; #endif using int128 = __int128_t; using uint128 = __uint128_t; using ld = long double; -using pii = pair; -using pil = pair; -using pli = pair; -using pll = pair; -using pid = pair; -using pdi = pair; -using pld = pair; -using pdl = pair; -using pdd = pair; -using tlll = tuple; -using tlld = tuple; -using tlli = tuple; -using tldl = tuple; -using tldd = tuple; -using tldi = tuple; -using tlil = tuple; -using tlid = tuple; -using tlii = tuple; -using tdll = tuple; -using tdld = tuple; -using tdli = tuple; -using tddl = tuple; -using tddd = tuple; -using tddi = tuple; -using tdil = tuple; -using tdid = tuple; -using tdii = tuple; -using till = tuple; -using tild = tuple; -using tili = tuple; -using tidl = tuple; -using tidd = tuple; -using tidi = tuple; -using tiil = tuple; -using tiid = tuple; -using tiii = tuple; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; template using max_heap = priority_queue; template using min_heap = priority_queue, greater<>>; template using oi = ostream_iterator; @@ -211,6 +186,7 @@ template void __read(T& x, U&... args) { cin >> x; __ #define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) #define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) #define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) template istream& operator>>(istream& in, pair& p) { return in >> p.first >> p.second; } @@ -429,6 +405,23 @@ istream& operator>>(istream& in, MLLd& num) { } // miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + #define functor(func) [&](auto&&... val) \ noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ {return func(std::forward(val)...);} @@ -487,7 +480,7 @@ array __initarray(const T& init) { } ///////////////////////////////////////////////////////// -// #define SINGLE_TEST_CASE +#define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 // #define TOT_TEST_CASE 10000 @@ -500,8 +493,21 @@ void prep() { void solve() { read(int, n); - readvec(int, a, n); - cout << a[n - 1] + *max_element(a.begin(), a.begin() + n - 1) << '\n'; + read(string, a); + + using mll = MLL; + mll res = 1; + int cnt = 1; + for (int i = 1; i < n; ++i) { + if (a[i] != a[i - 1]) { + cnt += 1; + } else { + res *= (cnt + 1) / 2; + cnt = 1; + } + } + res *= (cnt + 1) / 2; + cout << res << '\n'; } int main() { diff --git a/src/bin/a.out b/src/bin/a.out index 458b7ad08719f39bbbd142a994a10debac5a308e..aecb6c456e8d61669216e0a78c104ef298f1eadd 100755 GIT binary patch delta 633800 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 z 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
    ZI$5RC=*F+4yNBkV91DyAgD1vAIdX{V`~5 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½+UOEqgeCnn1kob}HYt!Y}e5iKjPM9QcQ|iR= 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

    ~qQz8Jdd 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 e;ZrXortFE_DkUjviFdN?zxNi({r +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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +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(int, n, q); + vector edges; + int base = 0; + for (int i = 0; i < n - 1; ++i) { + read(int, u, v, w); + edges.emplace_back(w, u, v); + base += w; + } + sort(edges.begin(), edges.end()); + + vector qe; + for (int i = 0; i < q; ++i) { + read(int, u, v, w); + qe.emplace_back(w, u, v); + } + + vector res(q, INF); + for (int i = 1; i <= 10; ++i) { + quick_union qu(n + 1); + for (auto&& [w, u, v] : edges) { + if (w > i) break; + qu.merge(u, v); + } + for (int j = 0; j < q; ++j) { + auto&& [w, u, v] = qe[j]; + if (qu.connected(u, v) and res[j] == INF) { + res[j] = min(0, w - i); + } + if (w <= i) { + qu.merge(u, v); + } + } + } + + assert(count(res.begin(), res.end(), INF) == 0); + int curr = base; + for (int i = 0; i < q; ++i) { + cout << (curr += res[i]) << '\n'; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/abc-357f.cc b/src/bin/abc-357f.cc new file mode 100644 index 0000000..ffde329 --- /dev/null +++ b/src/bin/abc-357f.cc @@ -0,0 +1,663 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +using mll = MLL; + +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); + pull(p); + } + + 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 { + mll a = 0, b = 0; + void apply(const Tag& rhs) { + a += rhs.a; + b += rhs.b; + } +}; +struct Info { + mll a_sum = 0, b_sum = 0, val = 0; + void apply(const Tag& rhs, size_t len) { + val += rhs.b * a_sum; + b_sum += rhs.b * len; + val += rhs.a * b_sum; + a_sum += rhs.a * len; + } +}; +Info operator+(const Info &a, const Info &b) { + return { + .a_sum = a.a_sum + b.a_sum, + .b_sum = a.b_sum + b.b_sum, + .val = a.val + b.val, + }; +} + +void solve() { + read(int, n, q); + readvec(mll, a, n); + readvec(mll, b, n); + + + segtree tr(n); + for (int i = 0; i < n; ++i) { + tr.set(i, { a[i], b[i], a[i] * b[i] }); + } + + while (q--) { + read(int, op, l, r); + --l, --r; + if (op == 1) { + read(int, x); + tr.range_apply(l, r, { x, 0 }); + } else if (op == 2) { + read(int, x); + tr.range_apply(l, r, { 0, x }); + } else { + cout << tr.range_query(l, r).val << '\n'; + } + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/abc-359f.cc b/src/bin/abc-359f.cc new file mode 100644 index 0000000..8cfbdbe --- /dev/null +++ b/src/bin/abc-359f.cc @@ -0,0 +1,525 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n); + readvec(int, a, n); + sort(a.begin(), a.end()); + +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/arc-180a.cc b/src/bin/arc-180a.cc new file mode 100644 index 0000000..6428345 --- /dev/null +++ b/src/bin/arc-180a.cc @@ -0,0 +1,537 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n); + read(string, a); + + using mll = MLL; + mll res = 1; + int cnt = 1; + for (int i = 1; i < n; ++i) { + if (a[i] != a[i - 1]) { + cnt += 1; + } else { + res *= (cnt + 1) / 2; + cnt = 1; + } + } + res *= (cnt + 1) / 2; + cout << res << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/arc-180b.cc b/src/bin/arc-180b.cc new file mode 100644 index 0000000..4d9aecb --- /dev/null +++ b/src/bin/arc-180b.cc @@ -0,0 +1,549 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n, k); + readvec(int, a, n); + vector res; + while (1) { + int pos = -1; + vector ss(n + 1, INF); + for (int i = n - 1; ~i; --i) { + ss[i] = min(ss[i + 1], a[i]); + } + for (int i = n - k - 1; i >= 0; --i) { + if (ss[i + k] < a[i] and (pos == -1 or a[i] < a[pos])) { + pos = i; + } + } + if (pos == -1) break; + int j = -1; + for (int i = pos + k; i < n; ++i) { + if (a[i] < a[pos] and (j == -1 or a[i] > a[j])) { + j = i; + } + } + swap(a[pos], a[j]); + res.emplace_back(pos + 1, j + 1); + } + cout << res.size() << '\n'; + for (auto&& [x, y] : res) { + cout << x << ' ' << y << '\n'; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/arc-180c.cc b/src/bin/arc-180c.cc new file mode 100644 index 0000000..53aa244 --- /dev/null +++ b/src/bin/arc-180c.cc @@ -0,0 +1,552 @@ +#include +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n); + readvec(int, a, n); + constexpr int Z = 1000; + using mll = MLL; + vector dp(n + 1, array()); + + mll res = 1; + dp[0][Z] = 1; + unordered_set oc; + for (int i = 1; i <= n; ++i) { + for (int j = 0; j <= 2 * Z; ++j) { + if (j - a[i - 1] == Z) { + res -= dp[i - 1][j - a[i - 1]]; + if (oc.count(a[i - 1])) { + ;; + } else { + oc.emplace(a[i - 1]); + dp[i][j] += dp[i - 1][j - a[i - 1]]; + } + } else if (j - a[i - 1] >= 0 and j - a[i - 1] <= 2 * Z) { + dp[i][j] += dp[i - 1][j - a[i - 1]]; + } + dp[i][j] += dp[i - 1][j]; + } + } + + debug(accumulate(dp[n].begin(), dp[n].end(), mll(0))); + res += accumulate(dp[n].begin(), dp[n].end(), mll(0)); + + cout << res << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/b.cc b/src/bin/b.cc index c8d3263..4d9aecb 100644 --- a/src/bin/b.cc +++ b/src/bin/b.cc @@ -23,47 +23,22 @@ using ull = uint64_t; #else using ll = long long; using ull = unsigned long long; -using ld = long double; #endif using int128 = __int128_t; using uint128 = __uint128_t; using ld = long double; -using pii = pair; -using pil = pair; -using pli = pair; -using pll = pair; -using pid = pair; -using pdi = pair; -using pld = pair; -using pdl = pair; -using pdd = pair; -using tlll = tuple; -using tlld = tuple; -using tlli = tuple; -using tldl = tuple; -using tldd = tuple; -using tldi = tuple; -using tlil = tuple; -using tlid = tuple; -using tlii = tuple; -using tdll = tuple; -using tdld = tuple; -using tdli = tuple; -using tddl = tuple; -using tddd = tuple; -using tddi = tuple; -using tdil = tuple; -using tdid = tuple; -using tdii = tuple; -using till = tuple; -using tild = tuple; -using tili = tuple; -using tidl = tuple; -using tidd = tuple; -using tidi = tuple; -using tiil = tuple; -using tiid = tuple; -using tiii = tuple; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; template using max_heap = priority_queue; template using min_heap = priority_queue, greater<>>; template using oi = ostream_iterator; @@ -211,6 +186,7 @@ template void __read(T& x, U&... args) { cin >> x; __ #define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) #define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) #define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) template istream& operator>>(istream& in, pair& p) { return in >> p.first >> p.second; } @@ -429,6 +405,23 @@ istream& operator>>(istream& in, MLLd& num) { } // miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + #define functor(func) [&](auto&&... val) \ noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ {return func(std::forward(val)...);} @@ -487,7 +480,7 @@ array __initarray(const T& init) { } ///////////////////////////////////////////////////////// -// #define SINGLE_TEST_CASE +#define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 // #define TOT_TEST_CASE 10000 @@ -499,12 +492,34 @@ void prep() { } void solve() { - read(ll, n, a, b); - auto calc = [&] (ll k) { - k = max(ll(0), min(k, min(n, b))); - return k * (b + 1) - (k + 1) * k / 2 + a * (n - k); - }; - cout << max(calc(b - a - 1), calc(b - a)) << '\n'; + read(int, n, k); + readvec(int, a, n); + vector res; + while (1) { + int pos = -1; + vector ss(n + 1, INF); + for (int i = n - 1; ~i; --i) { + ss[i] = min(ss[i + 1], a[i]); + } + for (int i = n - k - 1; i >= 0; --i) { + if (ss[i + k] < a[i] and (pos == -1 or a[i] < a[pos])) { + pos = i; + } + } + if (pos == -1) break; + int j = -1; + for (int i = pos + k; i < n; ++i) { + if (a[i] < a[pos] and (j == -1 or a[i] > a[j])) { + j = i; + } + } + swap(a[pos], a[j]); + res.emplace_back(pos + 1, j + 1); + } + cout << res.size() << '\n'; + for (auto&& [x, y] : res) { + cout << x << ' ' << y << '\n'; + } } int main() { diff --git a/src/bin/c.cc b/src/bin/c.cc index 68356b3..53aa244 100644 --- a/src/bin/c.cc +++ b/src/bin/c.cc @@ -1,3 +1,4 @@ +#include #pragma GCC optimize("Ofast") ///////////////////////////////////////////////////////// /** @@ -23,47 +24,22 @@ using ull = uint64_t; #else using ll = long long; using ull = unsigned long long; -using ld = long double; #endif using int128 = __int128_t; using uint128 = __uint128_t; using ld = long double; -using pii = pair; -using pil = pair; -using pli = pair; -using pll = pair; -using pid = pair; -using pdi = pair; -using pld = pair; -using pdl = pair; -using pdd = pair; -using tlll = tuple; -using tlld = tuple; -using tlli = tuple; -using tldl = tuple; -using tldd = tuple; -using tldi = tuple; -using tlil = tuple; -using tlid = tuple; -using tlii = tuple; -using tdll = tuple; -using tdld = tuple; -using tdli = tuple; -using tddl = tuple; -using tddd = tuple; -using tddi = tuple; -using tdil = tuple; -using tdid = tuple; -using tdii = tuple; -using till = tuple; -using tild = tuple; -using tili = tuple; -using tidl = tuple; -using tidd = tuple; -using tidi = tuple; -using tiil = tuple; -using tiid = tuple; -using tiii = tuple; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; template using max_heap = priority_queue; template using min_heap = priority_queue, greater<>>; template using oi = ostream_iterator; @@ -211,6 +187,7 @@ template void __read(T& x, U&... args) { cin >> x; __ #define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) #define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) #define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) template istream& operator>>(istream& in, pair& p) { return in >> p.first >> p.second; } @@ -429,6 +406,23 @@ istream& operator>>(istream& in, MLLd& num) { } // miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + #define functor(func) [&](auto&&... val) \ noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ {return func(std::forward(val)...);} @@ -487,7 +481,7 @@ array __initarray(const T& init) { } ///////////////////////////////////////////////////////// -// #define SINGLE_TEST_CASE +#define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 // #define TOT_TEST_CASE 10000 @@ -499,33 +493,36 @@ void prep() { } void solve() { - read(ll, n, k); - if (k & 1) { - cout << "No\n"; - return; - } - vector res(n + 1); - k /= 2; - iota(res.begin(), res.end(), 0); - int mx = n - 1; - int l = 1, r = n; - while (k) { - while (mx > k) { - l += 1; - mx -= 1; + read(int, n); + readvec(int, a, n); + constexpr int Z = 1000; + using mll = MLL; + vector dp(n + 1, array()); + + mll res = 1; + dp[0][Z] = 1; + unordered_set oc; + for (int i = 1; i <= n; ++i) { + for (int j = 0; j <= 2 * Z; ++j) { + if (j - a[i - 1] == Z) { + res -= dp[i - 1][j - a[i - 1]]; + if (oc.count(a[i - 1])) { + ;; + } else { + oc.emplace(a[i - 1]); + dp[i][j] += dp[i - 1][j - a[i - 1]]; + } + } else if (j - a[i - 1] >= 0 and j - a[i - 1] <= 2 * Z) { + dp[i][j] += dp[i - 1][j - a[i - 1]]; + } + dp[i][j] += dp[i - 1][j]; } - if (l >= r) { - cout << "No\n"; - return; - } - k -= mx; - res[l] = r, res[r] = l; - l += 1; - r -= 1; - mx -= 2; } - cout << "Yes\n"; - putvec1(res); + + debug(accumulate(dp[n].begin(), dp[n].end(), mll(0))); + res += accumulate(dp[n].begin(), dp[n].end(), mll(0)); + + cout << res << '\n'; } int main() { diff --git a/src/bin/cf-1534e.cc b/src/bin/cf-1534e.cc new file mode 100644 index 0000000..6812283 --- /dev/null +++ b/src/bin/cf-1534e.cc @@ -0,0 +1,566 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +int query(const vector& a) { + if (a.empty()) return 0; + cout << "?"; + for (auto&& x : a) { + cout << ' ' << x; + } + cout << endl; + read(int, x); + return x; +} + +void solve() { + read(int, n, k); + if ((n % k) & 1) { + cout << -1 << endl; + return; + } + + int ptr = 0; + int res = 0; + for (int i = 0; i < n / k; ++i) { + vector curr; + for (int j = ptr; j < ptr + k; ++j) { + curr.emplace_back(j + 1); + } + ptr += k; + res ^= query(curr); + } + + if (n % k) { + int x = (n % k) / 2; + vector curr; + for (int j = n - x; j > n - x - k; --j) { + curr.emplace_back(j); + } + res ^= query(curr); + curr.clear(); + for (int j = n; j > n - x; --j) { + curr.emplace_back(j); + } + for (int j = n / k * k; j > n - x - k; --j) { + curr.emplace_back(j); + } + res ^= query(curr); + } + cout << "! " << res << endl; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1536e.cc b/src/bin/cf-1536e.cc new file mode 100644 index 0000000..7bd22eb --- /dev/null +++ b/src/bin/cf-1536e.cc @@ -0,0 +1,536 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +constexpr int N = 4000010; +using mll = MLL; +mll pw[N]; +void prep() { + pw[0] = 1; + for (int i = 1; i < N; ++i) { + pw[i] = pw[i - 1] * 2; + } +} + +void solve() { + read(int, n, m); + readvec(char, a, n * m); + int cnt = count(a.begin(), a.end(), '0'); + if (cnt == 0) { + cout << pw[n * m] - 1 << '\n'; + } else { + cout << pw[n * m - cnt] << '\n'; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1537e1.cc b/src/bin/cf-1537e1.cc new file mode 100644 index 0000000..c0fa16d --- /dev/null +++ b/src/bin/cf-1537e1.cc @@ -0,0 +1,535 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n, k); + read(string, s); + string res(k, 'z'); + for (int i = 1; i <= n; ++i) { + string curr; + int ptr = 0; + for (int j = 0; j < k; ++j) { + curr += s[ptr]; + ptr = (ptr + 1) % i; + } + if (curr < res) res = curr; + } + + cout << res << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1537e2.cc b/src/bin/cf-1537e2.cc new file mode 100644 index 0000000..0a69f64 --- /dev/null +++ b/src/bin/cf-1537e2.cc @@ -0,0 +1,555 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n, k); + read(string, s); + auto z = calc_z(s); + int p = n; + int pos = INF; + char c = 0; + for (int i = 1; i <= n; ++i) { + int curr = i; + if (z[i % n] == n - i) { + curr += n - i; + if (z[n - i] != i) { + curr += z[n - i]; + if (s[curr % i] < s[curr % n] and (curr < pos or curr == pos and s[pos % i] < c)) { + pos = curr; + c = s[pos % i]; + p = i; + } + } + } else { + curr += z[i % n]; + if (s[curr % i] < s[curr % n] and (curr < pos or curr == pos and s[pos % i] < c)) { + pos = curr; + c = s[pos % i]; + p = i; + } + } + } + + int ptr = 0; + for (int i = 0; i < k; ++i) { + cout << s[ptr]; + ptr = (ptr + 1) % p; + } + cout << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1538e.cc b/src/bin/cf-1538e.cc new file mode 100644 index 0000000..c1f41cf --- /dev/null +++ b/src/bin/cf-1538e.cc @@ -0,0 +1,635 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 = hash()(a.first); + auto hash2 = 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +struct return_t { + ll length = 0; + string raw = ""; + ll cnt_haha = 0; + int right_h = 0; + int right_ha = 0; + int right_hah = 0; + int left_a = 0; + int left_ha = 0; + int left_aha = 0; +}; + +void solve() { + read(int, n); + unordered_map cnt; + unordered_map, pair, pair>, pair_hash> var; + pair last; + for (int i = 0; i < n; ++i) { + read(string, s, op); + if (op == ":=") { + read(string, v); + var[{cnt[s]++, s}] = { {-1, ""}, {-1, v} }; + } else { + read(string, v1, plus, v2); + var[{cnt[s]++, s}] = { {cnt[v1] - 1, v1}, {cnt[v2] - 1, v2} }; + } + if (i + 1 == n) { + last = { cnt[s] - 1, s }; + } + } + + auto make_raw = [] (const string& v) { + return_t res; + res.length = v.size(); + if (v.size() < 3) { + res.raw = v; + } + for (int i = 0; i + 3 < res.length; ++i) { + if (v.substr(i, 4) == "haha") { + res.cnt_haha = 1; + } + } + if (v.size() >= 3 and v.substr(v.size() - 3, 3) == "hah") { + res.right_hah = 1; + } + if (v.size() >= 2 and v.substr(v.size() - 2, 2) == "ha") { + res.right_ha = 1; + } + if (v[v.size() - 1] == 'h') { + res.right_h = 1; + } + if (v.size() >= 3 and v.substr(0, 3) == "aha") { + res.left_aha = 1; + } + if (v.size() >= 2 and v.substr(0, 2) == "ha") { + res.left_ha = 1; + } + if (v[0] == 'a') { + res.left_a = 1; + } + return res; + }; + + unordered_map, return_t, pair_hash> cache; + auto dfs = [&] (auto dfs, const pair& key) -> return_t { + return_t res; + if (cache.count(key)) { + res = cache[key]; + } else { + if (var[key].first.first == -1) { + res = make_raw(var[key].second.second); + } else { + auto&& [l, r] = var[key]; + return_t left_res = dfs(dfs, l), right_res = dfs(dfs, r); + if (left_res.length + right_res.length < 3) { + res = make_raw(left_res.raw + right_res.raw); + } else { + res.length = left_res.length + right_res.length; + res.cnt_haha = left_res.cnt_haha + right_res.cnt_haha; + if (left_res.right_hah and right_res.left_a) { + res.cnt_haha += 1; + } + if (left_res.right_ha and right_res.left_ha) { + res.cnt_haha += 1; + } + if (left_res.right_h and right_res.left_aha) { + res.cnt_haha += 1; + } + res.right_hah = right_res.right_hah; + res.right_ha = right_res.right_ha; + res.right_h = right_res.right_h; + res.left_aha = left_res.left_aha; + res.left_ha = left_res.left_ha; + res.left_a = left_res.left_a; + if (right_res.raw == "ah" and left_res.right_h or right_res.raw == "h" and left_res.right_ha) { + res.right_hah = 1; + } + if (right_res.raw == "a" and left_res.right_h) { + res.right_ha = 1; + } + if (left_res.raw == "h" and right_res.left_a) { + res.left_ha = 1; + } + if (left_res.raw == "a" and right_res.left_ha or left_res.raw == "ah" and right_res.left_a) { + res.left_aha = 1; + } + } + } + cache[key] = res; + // deb(key, cache[key].cnt_haha, cache[key].right_h, cache[key].left_aha, cache[key].length); + } + return cache[key]; + }; + + cout << dfs(dfs, last).cnt_haha << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1547g.cc b/src/bin/cf-1547g.cc new file mode 100644 index 0000000..7b3f236 --- /dev/null +++ b/src/bin/cf-1547g.cc @@ -0,0 +1,738 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +namespace tarjan { + struct mutex_cond { + int v1; bool cond1; + int v2; bool cond2; + mutex_cond(int v1, bool cond1, int v2, bool cond2) : v1(v1), cond1(cond1), v2(v2), cond2(cond2) {} + }; + struct inclusive_cond { + int v1; bool cond1; + int v2; bool cond2; + inclusive_cond(int v1, bool cond1, int v2, bool cond2) : v1(v1), cond1(cond1), v2(v2), cond2(cond2) {} + }; + // Returns the mapping between vertices and their affiliated sccs. + vector scc(const vector>& ch) { + int n = ch.size(); + int cnt = 0, scn = 0; + vector dfn(n), low(n), vis(n), st; + vector br(n); + auto tarjan = [&] (auto tarjan, int v) -> void { + dfn[v]=low[v]=++cnt; + st.push_back(v); + vis[v]=1; + for(const auto&u:ch[v]) + if(!dfn[u]) tarjan(tarjan, u),low[v]=min(low[v],low[u]); + else if(vis[u])low[v]=min(low[v],dfn[u]); + if(dfn[v]==low[v]){ + ++scn; + int u; + do u=st.back(), st.pop_back(),vis[u]=0,br[u]=scn; while(u!=v); + } + }; + for (int i = 0; i < n; ++i) { + if (!dfn[i]) { + tarjan(tarjan, i); + } + } + return br; + } + // This method can eliminate redundant edges or self-loops + vector> build_scc(const vector>& ch) { + int n = ch.size(); + auto br = scc(ch); + int cnt = *max_element(br.begin(), br.end()); + vector> rb(cnt + 1); + for (int i = 0; i < n; ++i) { + for (auto&& u : ch[i]) { + if (br[i] != br[u]) rb[br[i]].emplace(br[u]); + } + } + vector> res(cnt + 1); + for (int i = 1; i <= cnt; ++i) { + res[i] = vector(rb[i].begin(), rb[i].end()); + } + return res; + } + + // This method can eliminate redundant edges or self-loops + // return form: (scc size, children of scc) + vector>> build_scc_with_size(const vector>& ch) { + int n = ch.size(); + auto br = scc(ch); + int cnt = *max_element(br.begin(), br.end()); + vector> rb(cnt + 1); + for (int i = 0; i < n; ++i) { + for (auto&& u : ch[i]) { + if (br[i] != br[u]) rb[br[i]].emplace(br[u]); + } + } + vector>> res(cnt + 1); + for (int i = 1; i <= cnt; ++i) { + res[i].second = vector(rb[i].begin(), rb[i].end()); + } + for (int i = 1; i <= n; ++i) { + res[br[i]].first += 1; + } + return res; + } + // indices start from 1, result has `n` items + optional> solve_twosat(int n, const vector& conditions) { + vector> ch(2 * n + 1); + for (auto&& [v1, cond1, v2, cond2] : conditions) { + ch[(1 ^ cond1) * n + v1].emplace_back(cond2 * n + v2); + ch[(1 ^ cond2) * n + v2].emplace_back(cond1 * n + v1); + } + auto sccno = scc(ch); + for (int i = 1; i <= n; ++i) { + if (sccno[i] == sccno[i + n]) { + return nullopt; + } + } + vector res; + for (int i = 1; i <= n; ++i) { + if (sccno[i] < sccno[i + n]) { + res.emplace_back(false); + } else { + res.emplace_back(true); + } + } + return res; + }; + // indices start from 1, result has `n` items + optional> solve_twosat(int n, const vector& conditions) { + vector trans_conds; + for (auto&& [v1, cond1, v2, cond2] : conditions) { + trans_conds.emplace_back(v1, cond1, v2, not cond2); + } + return solve_twosat(n, trans_conds); + } + // Returns if each vertex is a cut vertex + // All indices start from 1 + vector cut_v(const vector>& ch) { + int n = ch.size() - 1; + vector vis(n + 1); + vector low(n + 1), dfn(n + 1), flag(n + 1); + int cnt = 0; + auto dfs = [&] (auto dfs, int v, int pa) -> void { + vis[v] = 1; + low[v] = dfn[v] = ++cnt; + int child = 0; + for (auto&& u : ch[v]) { + if (not vis[u]) { + ++child; + dfs(dfs, u, v); + low[v] = min(low[v], low[u]); + if (pa != v and low[u] >= dfn[v] and not flag[v]) { + flag[v] = 1; + } + } else if (u != pa) { + low[v] = min(low[v], dfn[u]); + } + } + if (pa == v and child >= 2 and not flag[v]) { + flag[v] = 1; + } + }; + for (int i = 1; i <= n; ++i) { + if (not dfn[i]) { + dfs(dfs, i, 0); + } + } + return flag; + } +} + +void solve() { + read(int, n, m); + adj(ch, n); + vector edges; + vector self_loop(n + 1); + for (int i = 0; i < m; ++i) { + read(int, u, v); + if (u != v) { + Edge(ch, u, v); + edges.emplace_back(u, v); + } else { + self_loop[u] = 1; + } + } + auto scc = tarjan::scc(ch); + int N = *max_element(scc.begin(), scc.end()); + + vector rev(N + 1); + for (int i = 1; i <= n; ++i) { + rev[scc[i]] = i; + } + vector cnt(N + 1); + for (int i = 1; i <= n; ++i) { + cnt[scc[i]] += 1; + } + + vector> nch(N + 1); + vector ind(N + 1); + for (auto&& [u, v] : edges) { + if (scc[u] != scc[v] and not nch[scc[u]].count(scc[v])) { + nch[scc[u]].emplace(scc[v]); + ++ind[scc[v]]; + } + } + + deque q; + vector res(N + 1); + for (int i = 1; i <= N; ++i) { + if (not ind[i]) { + q.emplace_back(i); + } + } + + while (q.size()) { + int v = q.front(); q.pop_front(); + if (v == scc[1]) { + res[v] = cnt[v] > 1 or self_loop[rev[v]] ? -1 : 1; + } else if (res[v] and (cnt[v] > 1 or self_loop[rev[v]])) { + res[v] = -1; + } + for (auto&& u : nch[v]) { + if (res[u] == 0) { + if (res[v] != 0) { + res[u] = res[v]; + } + } else if (res[u] == 1) { + if (res[v] == 1 or res[v] == 2) { + res[u] = 2; + } else if (res[v] == -1) { + res[u] = -1; + } + } else if (res[u] == 2) { + if (res[v] == -1) { + res[u] = -1; + } + } + if (--ind[u] == 0) { + q.emplace_back(u); + } + } + } + + for (int i = 1; i <= n; ++i) { + cout << res[scc[i]] << " \n"[i == n]; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1550d.cc b/src/bin/cf-1550d.cc new file mode 100644 index 0000000..f302d65 --- /dev/null +++ b/src/bin/cf-1550d.cc @@ -0,0 +1,544 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +constexpr int N = 2e5 + 10; +using mll = MLL; +mll fact[N]; +void prep() { + fact[0] = 1; + for (int i = 1; i < N; ++i) { + fact[i] = fact[i - 1] * i; + } +} + +void solve() { + read(int, n, l, r); + + mll res = 0; + for (int x = max(1, r - n); x <= min(r - (n + 1) / 2, min(n - l, (r - n - l + 1) / 2)); ++x) { + res += comb(r - x, (n + 1) / 2); + } + res += min(max(0, r - n - 1), n - l) * comb(n, (n + 1) / 2); + + if (n & 1) { + for (int x = max(1, r - n); x <= min(r - n / 2, min(n - l, (r - n - l + 1) / 2)); ++x) { + res += comb(r - x, n / 2); + } + res += min(max(0, r - n - 1), n - l) * comb(n, n / 2); + } + + cout << res << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1553f.cc b/src/bin/cf-1553f.cc new file mode 100644 index 0000000..29c9a4a --- /dev/null +++ b/src/bin/cf-1553f.cc @@ -0,0 +1,661 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +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); + pull(p); + } + + 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 = 0; + void apply(const Tag& rhs, size_t len) { + val += rhs.val * len; + } +}; +struct WInfo { + ll val = 0, cnt = 0, w = 0; + void apply(const Tag& rhs, size_t len) { + cnt += rhs.val; + val += w * rhs.val; + } +}; +Info operator+(const Info &a, const Info &b) { + return {a.val + b.val}; +} +WInfo operator+(const WInfo &a, const WInfo &b) { + return {a.val + b.val, a.cnt + b.cnt, 0}; +} + +void solve() { + read(int, n); + readvec(ll, a, n); + + constexpr ll N = 3e5 + 10; + segtree tr(N); + segtree tr2(N); + for (int i = 0; i < N; ++i) { + tr2.set(i, { 0, 0, i }); + } + + ll res = 0; + for (int i = 0; i < n; ++i) { + res += a[i] * i - tr.query(a[i]).val; + for (ll j = 0; j < N; j += a[i]) { + tr.range_apply(j, min(N - 1, j + a[i] - 1), { j }); + auto [sum, cnt, _] = tr2.range_query(j, min(N - 1, j + a[i] - 1)); + res += sum - cnt * j; + } + tr2.apply(a[i], { 1 }); + cout << res << " \n"[i + 1 == n]; + } +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1989c.cc b/src/bin/cf-1989c.cc new file mode 100644 index 0000000..1cc488c --- /dev/null +++ b/src/bin/cf-1989c.cc @@ -0,0 +1,552 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +// #define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + read(int, n); + readvec(int, b, n); + readvec(int, c, n); + vector a; + for (int i = 0; i < n; ++i) { + a.emplace_back(b[i], c[i]); + } + int s1 = 0, s2 = 0, cand = 0; + for (int i = 0; i < n; ++i) { + if (a[i].first == 1 and a[i].second == 1) { + s1 += 1, s2 += 1, cand += 1; + } else if (a[i].first == 1 and a[i].second == 0) { + s1 += 1; + } else if (a[i].first == 1 and a[i].second == -1) { + s1 += 1; + } else if (a[i].first == 0 and a[i].second == 1) { + s2 += 1; + } else if (a[i].first == 0 and a[i].second == -1) { + } else if (a[i].first == -1 and a[i].second == 1) { + s2 += 1; + } else if (a[i].first == -1 and a[i].second == 0) { + } else if (a[i].first == -1 and a[i].second == -1) { + cand += 1; + } + } + int res = -INF; + for (int x = 0; x <= cand; ++x) { + int y = cand - x; + chmax(res, min(s1 - x, s2 - y)); + } + cout << res << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1989d.cc b/src/bin/cf-1989d.cc new file mode 100644 index 0000000..533799d --- /dev/null +++ b/src/bin/cf-1989d.cc @@ -0,0 +1,558 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + constexpr ll N = 1e6 + 10; + read(int, n, m); + readvec(int, b, n); + vector a(N, INF); + for (int i = 0; i < n; ++i) { + read(int, x); + chmin(a[b[i]], b[i] - x); + } + vector ps(N, 0); + for (int i = 1; i < N; ++i) { + if (a[i] < a[ps[i - 1]]) { + ps[i] = i; + } else { + ps[i] = ps[i - 1]; + } + } + vector dp(N); + for (int i = 1; i < N; ++i) { + if (a[ps[i]] == INF) { + dp[i] = 0; + } else { + dp[i] = dp[i - a[ps[i]]] + 1; + } + } + + ll res = 0; + while (m--) { + read(int, x); + ll curr = 0; + if (x >= N) { + curr += (x - N + 1) / a[ps[N - 1]] + 1; + x -= curr * a[ps[N - 1]]; + } + curr += dp[x]; + res += curr; + } + cout << res * 2 << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_TEST_CASE)) { + solve(); + } else if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + dump_ignore(); + } +#else + solve(); +#endif + } +#endif +} diff --git a/src/bin/cf-1989e.cc b/src/bin/cf-1989e.cc new file mode 100644 index 0000000..ae20fed --- /dev/null +++ b/src/bin/cf-1989e.cc @@ -0,0 +1,551 @@ +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * This code should require C++14. + * However, it's only been tested with 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) remove_reference::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 ld = long double; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; +template using max_heap = priority_queue; +template using min_heap = priority_queue, greater<>>; +template using oi = ostream_iterator; +template using ii = istream_iterator; + +/* 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 faster(um) __AS_PROCEDURE((um).reserve(1024); (um).max_load_factor(0.25);) +#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 edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w), ch[v].emplace_back(u, w);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +#define Edgew(ch, u, v, w) __AS_PROCEDURE(ch[u].emplace_back(v, w);) +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 (auto& x : a) cin >> x;) +#define readvec1(type, a, n) __AS_PROCEDURE(vector a((n) + 1); copy_n(ii(cin), (n), a.begin() + 1);) +#define putvec(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec1(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, " ")); cout << endl;) +#define putvec_eol(a) __AS_PROCEDURE(copy(a.begin(), a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) +template istream& operator>>(istream& in, pair& p) { + return in >> p.first >> p.second; +} +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 */ +template +return_t qpow(ll b, ll p) { + if (b == 0 and p != 0) return 0; + if (p == 0) return 1; + return_t half = qpow(b, p / 2); + if (p % 2 == 1) return half * half * b; + else return half * half; +} + +#define comb(n, k) ((n) < 0 or (k) < 0 or (n) < (k) ? 0 : fact[n] / fact[k] / fact[(n) - (k)]) + +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) { + // return (factor, count, factor ** count) + 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; +} + +vector decompose_prime(int N) { + // return (factor, count) + vector result; + for (int i = 2; i * i <= N; i++) { + if (N % i == 0) { + int cnt = 0; + while (N % i == 0) N /= i, ++cnt; + result.emplace_back(i, cnt); + } + } + if (N != 1) { + result.emplace_back(N, 1); + } + return result; +} + +/* 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; } +}; +struct MLLd { + ll val, mdl; + MLLd(ll mdl, ll v = 0) : mdl(mdl), val(mod(v, mdl)) {} + MLLd(const MLLd& other) : mdl(other.mdl), val(other.val) {} + friend MLLd operator+(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val + rhs.val, lhs.mdl)); } + friend MLLd operator-(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - rhs.val, lhs.mdl)); } + friend MLLd operator*(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * rhs.val, lhs.mdl)); } + friend MLLd operator/(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val * mod(inverse(rhs.val, lhs.mdl), lhs.mdl), lhs.mdl)); } + friend MLLd operator%(const MLLd& lhs, const MLLd& rhs) { return MLLd(lhs.mdl, mod(lhs.val - (lhs / rhs).val, lhs.mdl)); } + friend bool operator==(const MLLd& lhs, const MLLd& rhs) { return lhs.val == rhs.val; } + friend bool operator!=(const MLLd& lhs, const MLLd& rhs) { return lhs.val != rhs.val; } + void operator+=(const MLLd& rhs) { val = (*this + rhs).val; } + void operator-=(const MLLd& rhs) { val = (*this - rhs).val; } + void operator*=(const MLLd& rhs) { val = (*this * rhs).val; } + void operator/=(const MLLd& rhs) { val = (*this / rhs).val; } + void operator%=(const MLLd& rhs) { val = (*this % rhs).val; } +}; + +template +ostream& operator<<(ostream& out, const MLL& num) { + return out << num.val; +} + +ostream& operator<<(ostream& out, const MLLd& num) { + return out << num.val; +} + +template +istream& operator>>(istream& in, MLL& num) { + return in >> num.val; +} + +istream& operator>>(istream& in, MLLd& num) { + return in >> num.val; +} + +// miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + +#define functor(func) [&](auto&&... val) \ +noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ +{return func(std::forward(val)...);} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return std::less<>()(extractor(a), extractor(b)); }); +} +template void sort_by_key(RandomIt first, RandomIt last, Func extractor, Compare comp) { + std::sort(first, last, [&] (auto&& a, auto&& b) { return comp(extractor(a), extractor(b)); }); +} +template +vector> zip(Iterator_T a_first, Iterator_T a_last, Iterator_U b_first, Iterator_U b_last) { + vector> res; + auto a_it = a_first; + auto b_it = b_first; + for (; not (a_it == a_last) and not (b_it == b_last); ++a_it, ++b_it) { + res.emplace_back(*a_it, *b_it); + } + return res; +} +template +vector> zip_n(Iterator_T a_first, Iterator_U b_first, size_t n) { + vector> res; + if (n > 0) { + res.emplace_back(*a_first, *b_first); + for (size_t i = 1; i != n; ++i) { + res.emplace_back(*++a_first, *++b_first); + } + } + return res; +} +template +class ArithmeticIterator : bidirectional_iterator_tag { +public: + using difference_type = ptrdiff_t; + using value_type = T; +private: + value_type value; +public: + ArithmeticIterator(const T& value) : value(value) {} + value_type operator*() const { return value; } + ArithmeticIterator& operator++() { ++value; return *this; } + ArithmeticIterator& operator--() { --value; return *this; } + bool operator==(const ArithmeticIterator& rhs) const { return value == rhs.value; } +}; +template vector> enumerate(const vector& container) { + return zip(ArithmeticIterator(0), ArithmeticIterator(INT_MAX), container.begin(), container.end()); +} +#define initarray(init, N) (__initarray::type, (N)>(init)) +template +array __initarray(const T& init) { + array res; + for (size_t i = 0; i < N; ++i) { + res[i] = init; + } + return res; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 7219 +// #define TOT_TEST_CASE 10000 + +void dump() {} + +void dump_ignore() {} + +void prep() { +} + +void solve() { + using mll = MLL; + read(int, n, k); + vector last(k + 1); + vector tot(n + 1, vector(k + 1)); + + tot[0][0] = 1; + last[0] = 1; + + for (int i = 1; i <= n; ++i) { + vector curr(k + 1); + if (i - 2 == 0 or i == n) { + for (int j = 0; j <= k; ++j) { + curr[min(k, j + 1)] += tot[i - 2][j]; + } + } else if (i - 3 >= 0) { + for (int j = 0; j <= k; ++j) { + curr[min(k, j + 1)] += tot[i - 3][j]; + } + } + for (int j = 0; j <= k; ++j) { + curr[min(k, j + 1)] += last[j]; + } + + for (int j = 0; j <= k; ++j) { + tot[i][j] = tot[i - 1][j] + curr[j]; + } + last = curr; + } + + cout << last[k] << '\n'; +} + +int main() { +#if __cplusplus < 201402L or defined(_MSC_VER) and not defined(__clang__) + assert(false && "incompatible compiler variant detected."); +#endif + untie; + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (t != (TOT_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 30d0d38..4082475 100644 --- a/src/bin/ctext_out.cc +++ b/src/bin/ctext_out.cc @@ -1,3 +1,7 @@ +#pragma GCC diagnostic ignored "-Wunused-const-variable" +#pragma GCC diagnostic ignored "-Wreorder" +// #pragma GCC diagnostic ignored "-Wreorder-ctor" +#pragma GCC diagnostic ignored "-Wunknown-pragmas" #pragma GCC optimize("Ofast") ///////////////////////////////////////////////////////// /** @@ -492,37 +496,6 @@ void prep() { } void solve() { - read(int, n, k); - vector a; - for (int i = 0; i < n; ++i) { - read(int, x); - --x; - a.emplace_back(x); - } - - vector dp(n + 1, vector(n + 1)); - for (int i = 1; i <= n; ++i) { - // don't remove the current element - for (int j = 0; j <= n; ++j) { - dp[i][j] = dp[i - 1][j] + ((i - 1) - a[i - 1] == j); - } - - // remove the current element - for (int j = 0; j < n; ++j) { - chmax(dp[i][j + 1], dp[i - 1][j]); - } - } - - // debug(dp); - - for (int i = 0; i <= n; ++i) { - if (dp[n][i] >= k) { - cout << i << '\n'; - return; - } - } - - cout << -1 << '\n'; } int main() { diff --git a/src/bin/d.cc b/src/bin/d.cc index 06952d7..533799d 100644 --- a/src/bin/d.cc +++ b/src/bin/d.cc @@ -23,47 +23,22 @@ using ull = uint64_t; #else using ll = long long; using ull = unsigned long long; -using ld = long double; #endif using int128 = __int128_t; using uint128 = __uint128_t; using ld = long double; -using pii = pair; -using pil = pair; -using pli = pair; -using pll = pair; -using pid = pair; -using pdi = pair; -using pld = pair; -using pdl = pair; -using pdd = pair; -using tlll = tuple; -using tlld = tuple; -using tlli = tuple; -using tldl = tuple; -using tldd = tuple; -using tldi = tuple; -using tlil = tuple; -using tlid = tuple; -using tlii = tuple; -using tdll = tuple; -using tdld = tuple; -using tdli = tuple; -using tddl = tuple; -using tddd = tuple; -using tddi = tuple; -using tdil = tuple; -using tdid = tuple; -using tdii = tuple; -using till = tuple; -using tild = tuple; -using tili = tuple; -using tidl = tuple; -using tidd = tuple; -using tidi = tuple; -using tiil = tuple; -using tiid = tuple; -using tiii = tuple; +using pii = pair; using pil = pair; using pid = pair; +using pli = pair; using pll = pair; using pld = pair; +using pdi = pair; using pdl = pair; using pdd = pair; +using tiii = tuple; using tiil = tuple; using tiid = tuple; +using tili = tuple; using till = tuple; using tild = tuple; +using tidi = tuple; using tidl = tuple; using tidd = tuple; +using tlii = tuple; using tlil = tuple; using tlid = tuple; +using tlli = tuple; using tlll = tuple; using tlld = tuple; +using tldi = tuple; using tldl = tuple; using tldd = tuple; +using tdii = tuple; using tdil = tuple; using tdid = tuple; +using tdli = tuple; using tdll = tuple; using tdld = tuple; +using tddi = tuple; using tddl = tuple; using tddd = tuple; template using max_heap = priority_queue; template using min_heap = priority_queue, greater<>>; template using oi = ostream_iterator; @@ -211,6 +186,7 @@ template void __read(T& x, U&... args) { cin >> x; __ #define putvec1_eol(a) __AS_PROCEDURE(copy(a.begin() + 1, a.end(), oi<__as_typeof(a)::value_type>(cout, "\n"));) #define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) #define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +#define deb(...) debug(make_tuple(__VA_ARGS__)) template istream& operator>>(istream& in, pair& p) { return in >> p.first >> p.second; } @@ -429,6 +405,23 @@ istream& operator>>(istream& in, MLLd& num) { } // miscancellous +template +bool chmax(T& lhs, const U& rhs) { + bool ret = lhs < rhs; + if (ret) { + lhs = rhs; + } + return ret; +} +template +bool chmin(T& lhs, const U& rhs) { + bool ret = lhs > rhs; + if (ret) { + lhs = rhs; + } + return ret; +} + #define functor(func) [&](auto&&... val) \ noexcept(noexcept(func(std::forward(val)...))) -> decltype(auto) \ {return func(std::forward(val)...);} @@ -487,7 +480,7 @@ array __initarray(const T& init) { } ///////////////////////////////////////////////////////// -// #define SINGLE_TEST_CASE +#define SINGLE_TEST_CASE // #define DUMP_TEST_CASE 7219 // #define TOT_TEST_CASE 10000 @@ -499,30 +492,43 @@ void prep() { } void solve() { - read(int, n, c); - readvec(ll, a, n); - a[0] += c; - vector ps(n + 1), ss(n + 1); - for (int i = 1; i <= n; ++i) { - ps[i] = max(ps[i - 1], a[i - 1]); - } - for (int i = n - 1; ~i; --i) { - ss[i] = max(ss[i + 1], a[i]); - } - ll left = 0; + constexpr ll N = 1e6 + 10; + read(int, n, m); + readvec(int, b, n); + vector a(N, INF); for (int i = 0; i < n; ++i) { - if (ps[i] < a[i] and ss[i + 1] <= a[i]) { - cout << 0; - } else { - int res = i; - if (ss[i + 1] > a[i] + left) { - res += 1; - } - cout << res; - } - cout << " \n"[i + 1 == n]; - left += a[i]; + read(int, x); + chmin(a[b[i]], b[i] - x); } + vector ps(N, 0); + for (int i = 1; i < N; ++i) { + if (a[i] < a[ps[i - 1]]) { + ps[i] = i; + } else { + ps[i] = ps[i - 1]; + } + } + vector dp(N); + for (int i = 1; i < N; ++i) { + if (a[ps[i]] == INF) { + dp[i] = 0; + } else { + dp[i] = dp[i - a[ps[i]]] + 1; + } + } + + ll res = 0; + while (m--) { + read(int, x); + ll curr = 0; + if (x >= N) { + curr += (x - N + 1) / a[ps[N - 1]] + 1; + x -= curr * a[ps[N - 1]]; + } + curr += dp[x]; + res += curr; + } + cout << res * 2 << '\n'; } int main() { diff --git a/src/bin/std.in b/src/bin/std.in index 393f0dd..e437e17 100644 --- a/src/bin/std.in +++ b/src/bin/std.in @@ -1,10 +1,8 @@ -4 -7 6 -1 1 2 3 4 5 6 -5 2 -5 1 3 2 3 -5 2 -5 5 5 5 4 -8 4 -1 2 3 3 2 2 5 5 - +4 4 +1 2 6 +2 3 5 +2 4 4 +1 3 3 +1 2 3 +1 4 10 +3 4 1 diff --git a/src/bin/template.cc b/src/bin/template.cc index 5621bb4..f316c78 100644 --- a/src/bin/template.cc +++ b/src/bin/template.cc @@ -1,3 +1,6 @@ +#pragma GCC diagnostic ignored "-Wunused-const-variable" +#pragma GCC diagnostic ignored "-Wreorder" +#pragma GCC diagnostic ignored "-Wunknown-pragmas" #pragma GCC optimize("Ofast") ///////////////////////////////////////////////////////// /** diff --git a/src/bin/test.cc b/src/bin/test.cc index edb3a52..4469875 100644 --- a/src/bin/test.cc +++ b/src/bin/test.cc @@ -1,36 +1,5 @@ #include using namespace std; -class Student_Info { -friend bool compare(Student_Info, Student_Info); -private: - string name; - double grade; - -public: - Student_Info(string name, double grade) { - this->name = name; - this->grade = grade; - } - - string get_name() { - return this->name; - } - -}; - -bool compare(Student_Info a, Student_Info b) { - return a.grade < b.grade; -} - int main() { - vector students = { - Student_Info("John", 8.5), - Student_Info("Bob", 7.5), - Student_Info("Jane", 9.5), - }; - sort(students.begin(), students.end(), compare); - for (auto&& student : students) { - cout << student.get_name() << endl; - } } diff --git a/src/bin/test.py b/src/bin/test.py index 1a394ae..c11d4f6 100644 --- a/src/bin/test.py +++ b/src/bin/test.py @@ -7,16 +7,32 @@ import io PRIME = 998_244_353 if __name__ == '__main__': - a = [(0, 0), (2, 16), (30, 14), (4, 6), (2, 10)] - a.sort(key=lambda t: t[1]) - n = len(a) - res = [] - for i in range(n): - for j in range(i + 1, n): - for k in range(i + 1, j): - # if (a[j][0] - a[i][0]) * (a[k][1] - a[i][1]) % (a[j][1] - a[i][1]): - # continue - x, y = a[i][0] // 2 + (a[j][0] // 2 - a[i][0] // 2) * (a[k][1] // 2 - a[i][1] // 2 + a[j][1] // 2 - a[i][1] // 2 - 1) // (a[j][1] // 2 - a[i][1] // 2) - a[k][0] // 2, a[i][1] // 2 - a[j][1] // 2 - if (x + y) & 1: - res.append((a[i], a[j], a[k], x, y)) - print(res) + n = 4 + k = 5 + for i in range(1 << n * k): + j = i + cnt = (j & ((1 << n) - 1)).bit_count() + f = 1 + for _ in range(k): + if (j & ((1 << n) - 1)).bit_count() != cnt: + f = 0 + break + j >>= n + for j in range(n): + l = i >> j + c = 0 + while l: + c += l & 1 + l >>= n + if (c & 1) == 0: + f = 0 + break + if f: + m = i + for j in range(k): + for l in range(n): + print(m & 1, end='') + m >>= 1 + print() + print() +