fork download
  1. #include<stdio.h>
  2. long long ar[100000];
  3. long long lazy[1000000];
  4. long long tree[1000000];
  5. void bt(long long node,long long a,long long b)
  6. {
  7. if(a>b)
  8. return ;
  9. if(a==b)
  10. {
  11. tree[node]=ar[a];
  12. return;
  13. }
  14. bt(1,a,(a+b)/2);
  15. bt(1,(a+b)/2+1,b);
  16. }
  17. void ut(long long node,long long a,long long b,long long i,long long j,long long num)
  18. {
  19. if(lazy[node]!=0)
  20. {
  21. tree[node]=tree[node]+lazy[node];
  22.  
  23. if(a!=b)
  24. {
  25. lazy[2*node]=lazy[2*node]+lazy[node];
  26. lazy[2*node+1]=lazy[2*node+1]+lazy[node];
  27. }
  28. lazy[node]=0;
  29.  
  30. }
  31. if(a > b || a > j || b < i)
  32. return;
  33. if(a>=i && b<=j)
  34. {
  35. tree[node]=tree[node]+num;
  36. if(a!=b)
  37. {
  38. lazy[2*node]=lazy[2*node]+num;
  39. lazy[2*node+1]=lazy[2*node+1]+num;
  40. }
  41. return;
  42. }
  43. ut(node*2, a, (a+b)/2, i, j,num);
  44. ut(1+node*2, 1+(a+b)/2, b, i, j,num);
  45.  
  46. tree[node] = tree[node*2]+tree[node*2+1];
  47. }
  48. int main()
  49. {
  50. long long n,i,x,y,num;
  51. scanf("%lld",&n);
  52. for(i=0;i<n;i++)
  53. scanf("%lld",&ar[i]);
  54. bt(1,0,n-1);
  55. scanf("%lld%lld%lld",&x,&y,&num);
  56. ut(1,0,n-1,x,y,num);
  57. printf("1\n");
  58. }
Success #stdin #stdout 0s 19864KB
stdin
Standard input is empty
stdout
1