#include <bits/stdc++.h>
using namespace std;
#define file \
freopen("in.txt" , "r" , stdin); \
freopen("out.txt" , "w" , stdout);
typedef long long ll;
const int mod = 998244353;
void test_case () {
int n;
cin >> n;
int dif[n - 1] , a[n];
a[0] = 1;
set<int> s;
s.insert(1);
for (int i = 0;i < n - 1;i ++) {
cin >> dif[i];
a[i + 1] = a[i] + dif[i];
s.insert(a[i + 1]);
}
if ((*s.begin() < 1 && *s.rbegin() > n) || *s.rbegin() < n) {
cout << "-1\n";
return;
}
if (*s.begin() < 1) {
int tmp = 1 - *s.begin();
for (int i = 0;i < n;i ++) {
a[i] += tmp;
cout << a[i] << " ";
}
cout << "\n";
}
else if (*s.rbegin() > n) {
int tmp = *s.rbegin() - n;
for (int i = 0;i < n;i ++) {
a[i] -= tmp;
cout << a[i] << " ";
}
cout << "\n";
}
else {
for (int i = 0;i < n;i ++) {
cout << a[i] << " ";
}
cout << "\n";
}
}
int32_t main () {
/// file
int TIME = clock();
int t = 1;
/// cin >> t;
while (t --) {
test_case();
}
cerr << "\nTime elapsed: " << (clock() - TIME) * 1000.0 / CLOCKS_PER_SEC << " ms\n";
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Incorrect |
0 ms |
348 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Incorrect |
0 ms |
348 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Incorrect |
0 ms |
348 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
105 ms |
18776 KB |
Output is correct |
2 |
Correct |
0 ms |
344 KB |
Output is correct |
3 |
Incorrect |
93 ms |
16724 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Incorrect |
0 ms |
348 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |