Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- typedef long long ll;
- typedef unsigned long long ull;
- typedef long double ld;
- #define vi vector<int>
- #define vll vector<long long>
- #define pb push_back
- #define p_b pop_back
- #define FOR(a, b) for(int i = a; i <= b; i++)
- #define tests() int t; cin >> t; while(t--)
- #define input(a, n) for(int i = 0; i < n; i++){int x; cin >> x; a.pb(x);}
- #define MOD (ull)1000000007
- using namespace std;
- ll bins(vector<pair<ll, int>>& v, int s, int e, ll x){
- if(e > s){
- int mid = s+(e-s)/2;
- if(v[mid].first == x){
- ll val = v[mid].first;
- v[mid].second--;
- if(v[mid].second == 0){
- v.erase(v.begin()+mid);
- }
- return val;
- } else if(v[mid].first > x && v[s].first < x){
- if(v[mid-1].first < x){
- ll val = v[mid-1].first;
- v[mid-1].second--;
- if(v[mid-1].second == 0){
- v.erase(v.begin()+mid-1);
- }
- return val;
- } else{
- return bins(v, s, mid, x);
- }
- } else{
- if(v[mid+1].first > x){
- ll val = v[mid].first;
- v[mid].second--;
- if(v[mid].second == 0){
- v.erase(v.begin()+mid);
- }
- return val;
- } else{
- return bins(v, mid, e, x);
- }
- }
- } else{
- ll val = v[s].first;
- v[s].second--;
- if(v[s].second == 0){
- v.erase(v.begin()+s);
- }
- return val;
- }
- }
- int main(){
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- int n, m;
- cin >> n >> m;
- map<ll, int> a;
- FOR(0, n-1){
- ll x;
- cin >> x;
- a[x]++;
- }
- vector<pair<ll, int>> v;
- for(auto i = a.begin(); i != a.end(); i++){
- v.pb({i->first, i->second});
- }
- FOR(0, m-1){
- ll t;
- cin >> t;
- if(v.size() > 0){
- if(v[v.size()-1].first <= t){
- cout << v[v.size()-1].first << "\n";
- v[v.size()-1].second--;
- if(v[v.size()-1].second == 0){
- v.erase(v.end()-1);
- }
- } else if(v[0].first > t){
- cout << "-1\n";
- } else{
- cout << bins(v, 0, v.size()-1, t) << "\n";
- }
- } else{
- cout << "-1\n";
- }
- }
- /*FOR(0, v.size()-1){
- cout << v[i].first << " " << v[i].second << "\n";
- }*/
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement