#include <bits/stdc++.h>
using namespace std;
#define ll long long
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll rand(ll l, ll r) {
return uniform_int_distribution<ll>(l, r)(rng);
}
const ll INF = 1e18;
ll binpow(ll base, ll exp, ll mod) {
ll ans = 1;
ll mult = base;
while(exp) {
if(exp & 1) ans = (ans * mult) % mod;
mult = (mult * mult) % mod;
exp >>= 1;
}
return ans;
}
ll gcd(ll a, ll b) {
if(b == 0) return a;
return gcd(b, a%b);
}
void solve() {
int n; cin >> n;
ll mn = 0; ll mx = 0;
ll cur = 0;
vector<ll> seq = {0};
for(int i = 1; i < n; i++) {
ll d; cin >> d;
cur = cur + d;
mn = min(mn, cur);
mx = max(mx, cur);
seq.push_back(cur);
}
if(mx - mn == n-1) {
// Recoverable a unique seq
ll offset = 1 - mn;
for(ll i : seq) cout << i + offset << " ";
cout << "\n";
} else cout << -1 << "\n";
}
int main() {
//freopen("COLLECT.INP", "r", stdin);
//freopen("COLLECT.OUT", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int tests = 1;
//cin >> tests;
while(tests--) solve();
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |