Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <algorithm>
- using namespace std;
- ifstream in("test.in");
- ofstream out("test.out");
- int v[100001],cnt;
- int vec[100001];
- struct mazan
- {
- int i,j;
- } query[100001];
- int cautbin(int val)
- {
- int r=0,pas=1<<16;
- while(pas)
- {
- if(r+pas<=cnt&&v[r+pas]<=val)
- r+=pas;
- pas/=2;
- }
- return r;
- }
- int main()
- {
- int n,i,t,te;
- in>>t;
- for(int l=1; l<=t; l++)
- {
- in>>n;
- cnt=0;
- for(i=1; i<=n; i++)
- {
- in>>te;
- if(te==1)
- {
- in>>query[i].i>>query[i].j;
- v[++cnt]=query[i].i;
- }
- else
- {
- in>>query[i].i;
- v[++cnt]=query[i].i;
- query[i].j=-1;
- }
- }
- sort(v+1,v+n+1);
- int cnt1=0;
- for(int i=1; i<=n; i++)
- if(v[i]!=v[i-1])
- v[++cnt1]=v[i];
- cnt=cnt1;
- for(int i=1; i<=n; i++)
- {
- query[i].i=cautbin(query[i].i);
- out<<query[i].i<<" "<<query[i].j<<'\n';
- }
- out<<'\n';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment