fork(1) download
  1. #include <iostream>
  2. #include <string.h>
  3. #include <vector>
  4. #include <set>
  5. using namespace std;
  6.  
  7. struct E{
  8. long long int num,no;
  9. };
  10.  
  11. vector<long long int> areaSum;
  12. E segA[600000];
  13. long long int segB[600000];
  14.  
  15. int R=262143;
  16.  
  17. long long int fSegASet(int no,int p1,int l2,int r2,long long int num){
  18. if(r2<p1 || p1<l2)return segA[no].num;
  19. if(l2==r2){
  20. segA[no].num=num;
  21. return segA[no].num;
  22. }
  23. int m=(l2+r2)/2;
  24. long long int res=fSegASet(no*2+1,p1,l2,m,num);
  25. res+=fSegASet(no*2+2,p1,m+1,r2,num);
  26. segA[no].num=res;
  27. return res;
  28. }
  29.  
  30.  
  31. int main() {
  32. for(int i=0;i<=R;i++){
  33. segA[i].num=0;
  34. segA[i].no=0;
  35. segB[i]=0;
  36. }
  37. int n,m;
  38. cin>>n>>m;
  39. for(int i=0;i<n;i++){
  40. long long int num;
  41. cin>>num;
  42. fSegASet(0,i,0,R,num);
  43. }
  44. return 0;
  45. }
Success #stdin #stdout 0.01s 12100KB
stdin
5 5
1 3 5 7 9
2 4 6 8 10
1 1 3
1 4 5
0 4 1 2
1 1 3
1 4 5
stdout
25