Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- #define ull unsigned long long int
- #define ld long double
- #define pb push_back
- #define p_b pop_back
- #define si stack<int>
- #define sll stack<ll>
- #define sc stack<char>
- #define vi vector<int>
- #define vll vector<ll>
- #define mii map<int, int>
- #define msi map<string, int>
- #define mci map<char, int>
- #define qc queue<char>
- #define qi queue<int>
- #define qll queue<ll>
- using namespace std;
- long bin_search(vector<long> v, ll x, long s, long e){
- long mid = s+(e-s)/2;
- if(v[mid] == x){
- return mid+1;
- } else if(v[s] <= x && v[mid] > x){
- return bin_search(v, x, s, mid-1);
- } else if(v[e] >= x && v[mid] < x){
- return bin_search(v, x, mid+1, e);
- } else{
- if(v[e] < x){
- return e+1;
- } else{
- return s;
- }
- }
- }
- int main(){
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- long n, q;
- cin >> n;
- vector<long> v;
- while(n--){
- long x;
- cin >> x;
- v.pb(x);
- }
- sort(v.begin(), v.end());
- cin >> q;
- while(q--){
- ll m;
- cin >> m;
- if(m >= v[v.size()-1]){
- cout << v.size() << "\n";
- } else if(m < v[0]){
- cout << "0\n";
- } else{
- cout << bin_search(v, m, 0, v.size()-1) << "\n";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement