Submission #760570

#TimeUsernameProblemLanguageResultExecution timeMemory
760570NK_Nice sequence (IZhO18_sequence)C++17
9 / 100
8 ms1732 KiB
// Success consists of going from failure to failure without loss of enthusiasm #include <bits/stdc++.h> using namespace std; #define nl '\n' #define pb push_back using ll = long long; template<class T> using V = vector<T>; const int MAX = 1e9; void solve() { int N, M; cin >> N >> M; bool SWAP = 0; if (N < M) { swap(N, M); SWAP = 1; } // WLOG N > M int D = (N + M - 1) / M; int ans = D * M - 1; V<ll> A(ans); // cout << ans << endl; int X = -(MAX - 1) / (M - 1); int REM = (MAX - 1) % (M - 1); // cout << REM << nl; // cout << X << nl; for(int i = 0; i < ans; i++) { if (i % M == M - 1) A[i] = MAX; else { // cout << i % M << " " << REM << endl; A[i] = ((i % M) < REM ? X - 1 : X); } } // cout << SWAP << nl; if (SWAP) { for(auto& x : A) x = -x; swap(N, M); } cout << ans << nl; for(auto& x : A) cout << x << " "; cout << nl; auto checker = [&]() { int K = size(A); V<ll> P = {0}; for(auto& x : A) P.pb(P.back() + x); for(int i = 0; i <= K; i++) { if (i >= N) { ll S = P[i] - P[i - N]; // cout << i << " " << S << endl; assert(S < 0); } if (i >= M) { ll S = P[i] - P[i - M]; // cout << i << " " << S << endl; assert(S > 0); } } }; checker(); } int main() { cin.tie(0)->sync_with_stdio(0); int T; cin >> T; while(T--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...