Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. #include <fstream>
  2.  
  3. using namespace std;
  4.  
  5. ifstream f("tnia.in");
  6. ofstream g("tnia.out");
  7.  
  8. long long int n,m,h[100001],sum[100001],a,b,c,d,i,s,q,st,dr,mid,ok,elem;
  9.  
  10. int main()
  11. {
  12. f>>n>>m;
  13. for(i=1;i<=n;i++)
  14. {
  15. f>>h[i];
  16. sum[i]=sum[i-1]+h[i];
  17. }
  18. f>>q;
  19. for(i=1;i<=q;i++)
  20. {
  21. f>>a>>b>>c>>d;
  22. st=a;
  23. dr=c;
  24. ok=1;
  25. elem=0;
  26. while(st<=dr&&ok==1)
  27. {
  28. mid=(st+dr)/2;
  29. if(h[mid]<d)
  30. elem=mid,st=mid+1;
  31.  
  32. if(h[mid]>=d)
  33. dr=mid-1;
  34. }
  35. if(elem==0)
  36. s=(c-a+1)*d;
  37. else
  38. s=sum[elem]-sum[a-1]+(c-elem)*d;
  39. if(b>1)
  40. {
  41. st=a;
  42. dr=c;
  43. ok=1;
  44. elem=0;
  45. while(st<=dr&&ok==1)
  46. {
  47. mid=(st+dr)/2;
  48. if(h[mid]<b-1)
  49. elem=mid,st=mid+1;
  50.  
  51. if(h[mid]>=b-1)
  52. dr=mid-1;
  53. }
  54. if(elem==0)
  55. s=s-(c-a+1)*(b-1);
  56. else
  57. s=s-sum[elem]+sum[a-1]-(c-elem)*(b-1);
  58. }
  59. g<<s<<"\n";
  60. }
  61. f.close();
  62. g.close();
  63. return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement