#include <iostream>
#include<vector>
int main(void) {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    int32_t n;
    std::cin >> n;
    int32_t i;
    std::vector<int32_t> diff(n-1);
    
    int64_t diff_sum = 0, maxi = 0, mini = 0;
    for(i = 0; i < n-1; ++i) {
        std::cin >> diff[i];
        diff_sum += diff[i];
        maxi = std::max(maxi, diff_sum);
        mini = std::min(mini, diff_sum);
    }
    maxi = n-maxi;
    mini = std::max(int64_t(1), 1-mini);
    if(mini == maxi) { // only one unique solution
        std::cout << maxi << " ";
        diff_sum = 0;
        for(i = 0; i < n-1; ++i) {
            diff_sum += diff[i];
            std::cout << maxi+diff_sum << " ";
        }
        std::cout << "\n";
    } else {
        std::cout << "-1\n";
    }
    return 0;
}
| # | 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... |