Advertisement
Ankit_132

D

May 1st, 2024
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int t;
  6. cin>>t;
  7. while(t--)
  8. {
  9. int n;
  10. cin>>n;
  11. int arr[100000];
  12. for (int i=0;i<n;i++) cin>>arr[i];
  13. int sum1[100001];
  14. int sum2[100001];
  15. int c1=0,c2=0;
  16. sum1[0]=0,sum2[0]=0;
  17. for (int i=0;i<n;i++)
  18. {
  19. if (arr[i]==1) c1++;
  20. if (arr[i]==2) c2++;
  21. sum1[i+1]=c1;
  22. sum2[i+1]=c2;
  23. }
  24.  
  25. int q;
  26. cin>>q;
  27. while(q--)
  28. {
  29. int l,r,k;
  30. cin>>l>>r>>k;
  31. int p1,p2;
  32. p1=sum1[r]-sum1[l-1];
  33. p2=sum2[r]-sum2[l-1];
  34. int ab=r-l+1;
  35. if (p1>p2) swap(p1,p2);
  36. int c=0;
  37. int ar=min(k-c,min(ab-(p1+p2),p2-p1));
  38. p1+=ar;
  39. c+=ar;
  40. if ((p1+p2)==ab)
  41. {
  42. int q=min(k-c,(p2-p1)/2);
  43. p2-=q;
  44. p1+=q;
  45. c+=q;
  46. }
  47. else
  48. {
  49. int diff=min(ab-(p1+p2),k-c);
  50. p2+=diff/2+diff%2;
  51. p1+=diff/2;
  52. }
  53. long long r1=(long long)p1;
  54. long long r2=(long long)p2;
  55. long long r3=r2*r1;
  56. cout<<r3<<endl;
  57. }
  58. }
  59. }
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement