This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
# include "teams.h"
//# include "grader.cpp"
# include <bits/stdc++.h>
using namespace std;
vector < pair <int, int> > v;
void init(int N, int A[], int B[]) {
      for(int i = 0; i < N; i ++)
            v.emplace_back(make_pair(B[i], A[i]));
      sort(v.begin(), v.end());
}
int can(int M, int K[]) {
      sort(K, K + M);
      set < pair <int, int> > st;
      int pt = 0;
      for(int i = 0; i < M; i ++){
            int x = K[i];
            while(pt < v.size() && x > 0){
                  st.insert({v[pt].second, pt});
                  pt ++;
                  while(x > 0 && !st.empty()){
                        pair <int, int> p = *st.begin();
                        if(p.first <= K[i] && K[i] <= v[p.second].first){
                              st.erase(st.begin());
                              x --;
                        } else {
                              if(v[p.second].first < K[i]){
                                    st.erase(st.begin());
                              } else {
                                    break;
                              }
                        }
                  }
            }
            while(x > 0 && !st.empty()){
                  pair <int, int> p = *st.begin();
                  if(p.first <= K[i] && K[i] <= v[p.second].first){
                        st.erase(st.begin());
                        x --;
                  } else {
                        if(v[p.second].first < K[i]){
                              st.erase(st.begin());
                        } else {
                              break;
                        }
                  }
            }
            if(x > 0)
                  return 0;
      }
      return 1;
}
Compilation message (stderr)
teams.cpp: In function 'int can(int, int*)':
teams.cpp:21:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             while(pt < v.size() && x > 0){
                   ~~~^~~~~~~~~~| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |