Advertisement
Kali_prasad

ranking books with fast IO

Apr 10th, 2022
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. #pragma GCC optimize ("O3")
  2. #pragma GCC target ("sse4")
  3.  
  4. #include <bits/stdc++.h>
  5. using namespace std;
  6.  
  7. typedef long long ll;
  8. typedef pair<int, int> pii;
  9. typedef pair<string,int> psi;
  10. typedef map<int,int> mii;
  11. typedef map<long long,long long> mll;
  12. typedef map<string,int> msi;
  13. typedef map<char,int> mci;
  14. typedef unordered_set<int> si;
  15. typedef set<long long> sll;
  16. typedef set<string> ss;
  17. typedef set<char> sc;
  18. typedef vector<int> vi;
  19. typedef vector<string> vs;
  20. typedef vector<char> vc;
  21. typedef vector<ll> vll;
  22. typedef vector<vector<int>> vvi;
  23. typedef vector<vector<string>> vvs;
  24. typedef vector<vector<ll>> vvll;
  25.  
  26. #define FOR(i, a, b) for (auto i=a; i<=(b); i++)
  27. #define FORd(i,b,a) for (int i =b; i >= a; i--)
  28. #define sz(x) (int)(x).size()
  29. #define mp make_pair
  30. #define pb push_back
  31. #define f first
  32. #define s second
  33. #define ins insert
  34.  
  35. const int MOD = 1000000007;
  36. //type functions here
  37.  
  38.  
  39.  
  40. int main() {
  41.     ios_base::sync_with_stdio(false);
  42.     cin.tie(NULL);
  43.     int tc=1;
  44.     cin>>tc;
  45.     FOR(w,1,tc)
  46.     {
  47.         vi v,kk,k;
  48.         int sizz;
  49.         cin>>sizz;
  50.          si sett;
  51.         FOR(n,1,sizz)
  52.         {
  53.             int temp;
  54.             cin>>temp;
  55.        
  56.             if(sett.find(temp)==sett.end())
  57.             {k.pb(temp);sett.insert(temp);}
  58.         }
  59.        
  60.      
  61.         int m=1;
  62.         cin>>m;
  63.         FOR(q,1,m)
  64.         {
  65.             int curr=25,ans=sz(k);
  66.             cin>>curr;
  67.             int left=0,right=sz(k)-1;
  68.             while(left<=right)
  69.             {
  70.                 int mid=(left+right)/2;
  71.                 if(curr>=k[mid])
  72.                 {
  73.                     ans=mid;
  74.                     right=mid-1;
  75.                 }
  76.                 else left=mid+1;
  77.             }
  78.             cout<<ans+1<<" ";
  79.         }
  80.         cout<<endl;
  81.     }
  82.     return 0;
  83. }
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement