Submission #1300122

#TimeUsernameProblemLanguageResultExecution timeMemory
1300122hypersphereLabels (NOI20_labels)C++20
100 / 100
37 ms4928 KiB
#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 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...