Submission #1288031

#TimeUsernameProblemLanguageResultExecution timeMemory
1288031ofozLabels (NOI20_labels)C++20
100 / 100
36 ms9448 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O2") using namespace std; #define int long long #define ll long long #define vc vector<char> #define vi vector<int> #define vb vector<bool> #define pi pair<int, int> #define ppi pair<pair<int, int>, int> #define pip pair<int, pair<int, int>> #define multi multiset<int> #define multp multiset<pi> #define endl '\n' mt19937 rng(chrono::system_clock::now().time_since_epoch().count()); const int MOD = 1e9 + 7; const int MAXN = 2e5+5; const int S = 350; void solve() { int n; cin >> n; vi d(n-1); for (int &x : d) cin >> x; vi prfx(n); prfx[0] = d[0]; for (int i = 1; i < n-1; i++) prfx[i] = prfx[i-1] + d[i]; auto getPrfx = [&](int l, int r) { r--; if (l > r) return 0ll; int L = 0; if (l) L = prfx[l-1]; int R = prfx[r]; return R - L; }; int mx = 0, mn = 0; for (int i = 1; i < n; i++) { if (getPrfx(0, i) > getPrfx(0, mx)) mx = i; if (getPrfx(0, i) < getPrfx(0, mn)) mn = i; } if (abs(getPrfx(min(mn, mx), max(mx, mn))) != n-1) { cout << -1 << endl; return; } vi res(n); for (int i = 0; i < n; i++) { res[i] = abs(getPrfx(min(mn, i), max(mn, i))) + 1; cout << res[i] << ' '; } } /* A_1 - A_0 A_2 - a_1 D_i = A_i+1 - A_i */ signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); bool test = 0; int t; if (!test) t = 1; else 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...