fork download
  1. #include<cstdio>
  2. #include <iostream>
  3. using namespace std;
  4. long long int t[100005]={0};
  5.  
  6. void set(int n,int i,int v)
  7. {
  8. while(i<=n)
  9. {
  10. t[i]+=v;
  11. i=i+(i&(-i));
  12. }
  13. }
  14. long long int getSum(int i)
  15. {
  16. long long int sum =0;
  17. while(i>0)
  18. {
  19. sum=sum+t[i];
  20. i=i-(i&(-i));
  21. }
  22. return sum;
  23. }
  24. int main() {
  25. int test;
  26. scanf("%d",&test);
  27. while(test--)
  28. {
  29. int n,m;
  30. long int v;
  31. scanf("%d%d",&n,&m);
  32. for(int i=0;i<=n;i++) t[i]= 0;
  33. while(m--)
  34. {
  35. int p,q;
  36. bool f;
  37. scanf("%d",&f);
  38. if(!f)
  39. {
  40. scanf("%d%d%d",&p,&q,&v);
  41. for(int i=p;i<=q;i++)
  42. {
  43. set(n+1,i,v);
  44. }
  45. }
  46. else
  47. {
  48. scanf("%d%d",&p,&q);
  49. printf("%lld\n",getSum(q)-getSum(p-1));
  50. }
  51. }
  52. }
  53. return 0;
  54. }
Success #stdin #stdout 0s 4124KB
stdin
1
4 6 
0  2 4 13
0 1 1 4
1 1 4
0 1 4 0
0 1 2 0
1 2 3
stdout
43
26