#include <bits/stdc++.h>
using namespace std;
int main(){
int N;
cin>>N;
int D[N-1];
int diff=1;
int mini=INT_MAX,maxe=-INT_MAX;
for(int i=0; i<N-1; i++){
cin>>D[i];
diff+=D[i];
if(diff>maxe){
maxe=diff;
}
if(diff<mini){
mini=diff;
}
}
if(abs(mini-maxe)==N){
int soln=N-maxe;
for(int i=0; i<N-1; i++){
cout<<soln<<' ';
soln+=D[i];
}
cout<<soln;
}
else if(mini==1-N&&maxe<=1){
int soln=N;
for(int i=0; i<N-1; i++){
cout<<soln<<' ';
soln+=D[i];
}
cout<<soln;
}
else if(maxe==N&&mini>=1){
int soln=1;
for(int i=0; i<N-1; i++){
cout<<soln<<' ';
soln+=D[i];
}
cout<<soln;
}
else{
cout<<-1;
}
}
# |
결과 |
실행 시간 |
메모리 |
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 |
57 ms |
3408 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Incorrect |
38 ms |
1372 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 |
- |