hkshakib

Untitled

May 3rd, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #include<ext/pb_ds/assoc_container.hpp>
  3. #include<ext/pb_ds/tree_policy.hpp>
  4. using namespace std;
  5. using namespace __gnu_pbds;
  6. typedef long long ll;
  7. typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update>_Bohemian;
  8. int arr[200005],b[200005];
  9. int main ()
  10. {
  11. int n,m;
  12. _Bohemian st;
  13. cin>>n;
  14. for (int i=1; i<=n; i++)
  15. {
  16. cin>>arr[i];
  17. st.insert(i);
  18. }
  19. cin>>m;
  20. for (int i=0; i<m; i++)
  21. {
  22. int chk,que;
  23. cin>>chk;
  24. if (chk==2)
  25. {
  26. cin>>que;
  27. cout<<b[que]<<endl;
  28. }
  29. else
  30. {
  31. int p,q;
  32. cin>>p>>q;
  33. while(q>0)
  34. {
  35. auto it=st.lower_bound(p);
  36. if (it==st.end())
  37. break;
  38. auto x =*it;
  39. if (q<arr[x]-b[x])
  40. {
  41. b[x]+=q;
  42. q=0;
  43. }
  44. else
  45. {
  46. q-=(arr[x]-b[x]);
  47. b[x]=arr[x];
  48. st.erase(it);
  49. }
  50. }
  51. }
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment