jakaria_hossain

codeforce - Polycarp Restores Permutation

Mar 20th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define M 1e9+10
  4. #define ll long long
  5. #define fastread()(ios_base::sync_with_stdio(false),cin.tie(NULL));
  6. int main()
  7. {
  8. fastread();
  9. ll n;
  10. cin>>n;
  11. ll q[n],sum=0,min_val=0;
  12. for(int i=0;i<n-1;i++)
  13. {
  14. cin>>q[i];
  15. sum+=q[i];
  16. min_val=min(min_val,sum);
  17. }
  18. ll ans[n+1],sub[n+1],check[n+1],pos=0;
  19. ans[0]=1-min_val;
  20. sub[0]=ans[0];
  21. for(int i=0;i<n-1;i++)
  22. {
  23. ans[i+1]=ans[i]+q[i];
  24. sub[i+1]=ans[i+1];
  25. }
  26. sort(sub,sub+n);
  27. bool ok=true;
  28. for(int i=0;i<n-1;i++)
  29. {
  30. if(sub[i]==sub[i+1])
  31. {
  32. ok=false;
  33. }
  34. else check[pos++]=sub[i];
  35. }
  36. if(ok)for(int i=0;i<n;i++)
  37. {
  38. if(ans[i]<1 || ans[i]>n)ok=false;
  39. }
  40. if(ok)
  41. {
  42. for(int i=0;i<n;i++)cout<<ans[i]<<" ";
  43. }
  44. else cout<<"-1";
  45.  
  46.  
  47. //printf("\n");
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment