fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void makesegtree(int *arr,int *segtree,int st,int en,int pos)
  5. {
  6. if(st==en)
  7. {segtree[pos]=arr[st];
  8. }
  9. else{
  10. int mid=(st+en)/2;
  11. makesegtree(arr,segtree,st,mid,2*pos);
  12. makesegtree(arr,segtree,mid+1,en,2*pos+1);
  13. segtree[pos]=segtree[2*pos+1]+segtree[2*pos+2];
  14. }
  15. }
  16.  
  17. int main()
  18. {
  19. int n;
  20. cin>>n;
  21. int arr[n];
  22. for(int i=0;i<n;i++)
  23. arr[i]==i+1;
  24. int *segtree;
  25. segtree= new int[4*n+1];
  26. makesegtree(arr,segtree,0,n-1,0);
  27. for(int i=0;i<4*n+1;i++)
  28. cout<<segtree[i]<<" ";
  29. return 0;
  30. }
  31.  
Time limit exceeded #stdin #stdout 5s 8388607KB
stdin
Standard input is empty
stdout
Standard output is empty