# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1109165 | 2024-11-06T06:38:26 Z | stdfloat | Nice sequence (IZhO18_sequence) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; using ll = long long; #define int long long #define sz(v) (int)(v).size() void solve() { int n, m; cin >> n >> m; bool tr = false; if (n > m) { tr = true; swap(n, m); } vector<int> v; if (!(m % n)) { for (int i = 1; i < m; i++) v.push_back(-1); } else { int x = m / n + 1, z = x * (n - 1); for (int i = 1; i <= z; i++) { for (int j = 1; j < n; j++) v.push_back(x); if (i < z) v.push_back(-(x * (n - 1) + 1)); } } if (tr) { swap(n, m); for (auto &i : v) i *= -1; for (auto i : v) cout << i << ' '; cout << endl; } ll sm1 = 0, sm2 = 0; for (int i = 0; i < sz(v); i++) { sm1 += v[i] - (n <= i ? v[i - n] : 0); sm2 += v[i] - (m <= i ? v[i - m] : 0); if (n - 1 <= i) { if (sm1 >= 0) cout << "sad1\n"; // assert(sm1 < 0); return 0; } if (m - 1 <= i) { if (sm2 <= 0) cout << "sad2\n"; // assert(sm2 > 0); return 0; } } cout << sz(v) << '\n'; for (auto i : v) cout << i << ' '; if (!v.empty()) cout << '\n'; } int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while (T--) solve(); }