#include "teams.h"
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
int n;
vector<pii> arr;
vector<int> sz;
int s;
void init(int N, int A[], int B[]) {
	n = N;
	arr.resize(n);
	for(int i = 0; i < n; i++){
		arr[i] = {A[i], B[i]};
	}
	sort(arr.begin(),arr.end());
} 
int can(int m, int sizes[]) {
	vector<int> K(m);
	for(int i = 0; i < m; i++){
		K[i] = sizes[i];
	}
	sort(K.begin(),K.end());
	s = 0;
	for(int i = 0; i < m; i++){
		s += K[i];
	}
	if(s > n){
		return false;
	}
    
    priority_queue<int, vector<int>, greater<int>> pq;
    int cur = 0;
    int cs = 0;
    for(int p = 1; p <= n; p++){
        while(pq.size() && pq.top() < p){
            pq.pop();
        }
        while(cs < n && arr[cs].first == p){
            pq.push(arr[cs].second);
            cs++;
        }
        while(cur < m && K[cur] == p){
            for(int i = 1; i <= p; i++){
                if(pq.empty()){
                    return false;
                }
                pq.pop();
            }
            cur++;
        }
    }
    return true;
}
| # | 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... |