fork(4) download
  1. #include <iostream>
  2. #include<cstdio>
  3. #define LSOne(S) (S & (-S))
  4. using namespace std;
  5. int n;
  6. int ft[100009]={0};
  7. void update(int k,int v)
  8. {
  9. for(;k<=n;k+=LSOne(k));
  10. ft[k]+=v;
  11. }
  12. void range_update(int l,int r,int val)
  13. {
  14. update(l,val);
  15. update(r+1,-val);
  16.  
  17. }
  18. long long int query(int b)
  19. {
  20. long long int sum=0;
  21. for (; b; b -= LSOne(b))
  22. sum += ft[b];
  23. return sum;
  24. }
  25. int main() {
  26. // your code goes here
  27.  
  28. int t;
  29. scanf("%d",&t);
  30. while(t--)
  31. {
  32. int u;
  33. scanf("%d%d",&n,&u);
  34. while(u--)
  35. {
  36. int l,r,val;
  37. scanf("%d%d%d",&l,&r,&val);
  38. range_update(l+1,r+1,val);
  39. }
  40. int q;
  41. scanf("%d",&q);
  42. while(q--)
  43. {
  44. int index;
  45. scanf("%d",&index);
  46. cout<<query(index+1)<<endl;
  47. }
  48. }
  49. return 0;
  50. }
Success #stdin #stdout 0s 3532KB
stdin
1
5 3
0 1 7
2 4 6
1 3 2
3
0
3
4
stdout
0
0
0