fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int valuefind(vector<long long int> a,long long int sum)
  4. {
  5. long long int i,n,k,checksum=0;
  6. for(i=a.size()-1;i>=0;i--)
  7. {
  8. checksum+=a[i];
  9. if(checksum==sum)
  10. checksum=0;
  11. if(checksum>sum)
  12. {checksum=-1;
  13. break;
  14. }
  15.  
  16. }
  17.  
  18. if(checksum==-1)return 0;
  19. else return 1;
  20.  
  21. }
  22.  
  23. int main() {
  24.  
  25. long long int n,i,j,sum=0;
  26. cin>>n;
  27. vector<long long int> a(n);
  28. for(i=0;i<n;i++)
  29. {
  30. cin>>a[i];
  31. sum+=a[i];
  32. }
  33. vector<long long int>ans;
  34.  
  35. vector<long long int>factor;
  36.  
  37. long long int check=sum;
  38.  
  39. for(i=1;i*2<=sum;i++)
  40. {
  41.  
  42.  
  43.  
  44. if(check%i==0)
  45. { factor.push_back(i);
  46.  
  47. }
  48.  
  49. }
  50. factor.push_back(sum);
  51. check=sum;
  52. i=0;
  53. while(i!=factor.size())
  54. {
  55.  
  56. check=sum/factor[i];
  57. if(valuefind(a,check))
  58. ans.push_back(check);
  59.  
  60.  
  61. i++;
  62.  
  63.  
  64. }
  65. for(i=ans.size()-1;i>=0;i--)
  66. cout<<ans[i]<<" ";
  67. return 0;
  68. }
  69.  
Success #stdin #stdout 0s 16064KB
stdin
8
1 2 1 1 1 2 1 3
stdout
3 4 6 12