Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. Рома, SQRT-1, A
  2. #include <iostream>
  3. #include <vector>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10. std::ios_base::sync_with_stdio(false);
  11.  
  12. long long n,q;
  13. cin >> n >> q;
  14. long long len = 450;
  15. vector <long long> a(len*len,0);
  16. vector <long long> add(len,0);
  17. vector <long long> sum(len,0);
  18. for(long long i=0;i<n;i++)
  19. {
  20. cin >> a[i];
  21. sum[i/len]+=a[i];
  22. }
  23. long long z;
  24. long long l,r;
  25. long long c;
  26. for(long long i=0;i<q;i++)
  27. {
  28. cin >> z;
  29. if (z==1)
  30. {
  31. cin >> l >> r;
  32. l--;
  33. r--;
  34. c = 0;
  35. for(long long j=l;j<=r;j++)
  36. {
  37. if(j%len==0&&(j+len-1)<=r)
  38. {c+=sum[j/len]+add[j/len]*len;j+=len-1;}
  39. else
  40. {c+=a[j]+add[j/len];}
  41. }
  42. cout << c <<"\n";
  43. }
  44. if(z==2)
  45. {
  46. long long x;
  47. cin >> l >> r >> x;
  48. l--;
  49. r--;
  50. for(long long j=l;j<=r;j++)
  51. {
  52. if(j%len==0&&(j+len-1)<=r)
  53. {add[j/len]+=x;j+=len-1;}
  54. else
  55. {a[j]+=x;sum[j/len]+=x;}
  56. }
  57.  
  58.  
  59.  
  60. }
  61. }
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement