Advertisement
nicuvlad76

Untitled

Feb 11th, 2023
992
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <algorithm>
  4. #define N 100005
  5. using namespace std;
  6. ifstream fin("tnia.in");
  7. ofstream fout("tnia.out");
  8. long long  v[N], s[N];
  9. long long  n,m ,i,j, st, dr, mij, q, c1,l1,c2,l2, su,sl, sol;
  10. int main()
  11. {
  12.     fin>>n>>m; ///n =col m=lin
  13.     for(i=1;i<=n;i++)///col
  14.     {
  15.         fin>>v[i];
  16.         s[i]=s[i-1]+v[i];///sume part
  17.     }
  18.     fin>>q;
  19.     for(i=1;i<=q;i++)
  20.     {
  21.         fin>>c1>>l1>>c2>>l2;
  22.         ///caut binar l2
  23.         st=1, dr=n;
  24.         su=0, sol=m;
  25.         while(st<=dr)
  26.         {
  27.             mij=(st+dr)/2;
  28.             if(v[mij]<l2)st=mij+1;
  29.             else sol=mij, dr=mij-1;
  30.         }
  31.         ///caut binar pe l1
  32.         st=1; dr=n;
  33.         sl=0;
  34.         while(st<=dr)
  35.         {
  36.             mij=(st+dr)/2;
  37.             if(v[mij]>=l1)dr=mij-1;
  38.             else sl=mij, st=mij+1;
  39.         }
  40.  
  41.         if(sol<=c2 && sol>=c1)
  42.              su=(l2-l1+1)*(c2-sol+1),sol--;
  43.         else
  44.         {
  45.             if(sol<=c1)
  46.                 su=(l2-l1+1)*(c2-c1+1), sol=c1, sl=c1;
  47.         }
  48.  
  49.         if(sol>c2) sol=c2;
  50.         if(sl<c1)sl=c1;
  51.         else {
  52.             if(sl>=c2)sl=c2+1;
  53.             else sl++;
  54.         }
  55.         su+=s[sol]-s[sl-1]-(l1-1)*(sol-sl+1);
  56.         fout<<su<<"\n";
  57.     }
  58.     return 0;
  59. }
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement