Anon2005

Musetel

Feb 6th, 2020
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include <fstream>
  2. #include <algorithm>
  3. using namespace std;
  4. ifstream in("test.in");
  5. ofstream out("test.out");
  6. int v[100001],cnt;
  7. int vec[100001];
  8. struct mazan
  9. {
  10.     int i,j;
  11. } query[100001];
  12. int cautbin(int val)
  13. {
  14.     int r=0,pas=1<<16;
  15.     while(pas)
  16.     {
  17.         if(r+pas<=cnt&&v[r+pas]<=val)
  18.             r+=pas;
  19.         pas/=2;
  20.     }
  21.     return r;
  22. }
  23. int main()
  24. {
  25.     int n,i,t,te;
  26.     in>>t;
  27.     for(int l=1; l<=t; l++)
  28.     {
  29.         in>>n;
  30.         cnt=0;
  31.         for(i=1; i<=n; i++)
  32.         {
  33.             in>>te;
  34.             if(te==1)
  35.             {
  36.                 in>>query[i].i>>query[i].j;
  37.                 v[++cnt]=query[i].i;
  38.             }
  39.             else
  40.             {
  41.                 in>>query[i].i;
  42.                 v[++cnt]=query[i].i;
  43.                 query[i].j=-1;
  44.             }
  45.         }
  46.         sort(v+1,v+n+1);
  47.         int cnt1=0;
  48.         for(int i=1; i<=n; i++)
  49.             if(v[i]!=v[i-1])
  50.                 v[++cnt1]=v[i];
  51.         cnt=cnt1;
  52.         for(int i=1; i<=n; i++)
  53.         {
  54.             query[i].i=cautbin(query[i].i);
  55.             out<<query[i].i<<" "<<query[i].j<<'\n';
  56.         }
  57.         out<<'\n';
  58.     }
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment