Submission #311680

#TimeUsernameProblemLanguageResultExecution timeMemory
311680MilosMilutinovicLabels (NOI20_labels)C++14
100 / 100
64 ms5628 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector<int> a(n - 1); for (int i = 0; i < n - 1; i++) { cin >> a[i]; } auto Can = [&](int s) { int sum = s; for (int i = 0; i < n - 1; i++) { sum += a[i]; if (sum > n) { return 1; } else { if (sum < 1) { return 2; } } } return 0; }; int low = 1, top = n, ans = 0, cnt = 0; while (low <= top) { int mid = (low + top) / 2; //cout << mid << " " << endl; int qq = Can(mid); if (qq == 0) { cnt++; ans = mid; break; } else { if (qq == 1) { top = mid - 1; } else { low = mid + 1; } } } if (Can(ans - 1) == 0 && ans > 1) { cnt++; } if (Can(ans + 1) == 0 && ans < n) { cnt++; } if (cnt != 1) { cout << -1 << '\n'; } else { cout << ans << " "; int sum = ans; for (int i = 0; i < n - 1; i++) { sum += a[i]; cout << sum << " "; } } 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...