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<iostream>
#include<vector>
#include<algorithm>
#include<utility>
#include<set>
#include "teams.h"
using namespace std;
namespace{
	int n;
	vector<vector<int>> vec;
}
void init(int N, int A[], int B[]) {
	n = N;
	vec.resize(n + 1);
	for(int i = 0; i < n; i++) vec[A[i]].push_back(B[i]);
}
int can(int M, int K[]) {
	vector<int> vals;
	int m = M;
	for(int i = 0; i < m; i++) vals.push_back(K[i]);
	sort(vals.begin(), vals.end());
	int ptr = 0;
	multiset<int> s;
	for(int i = 1; i <= n; i++){
		for(auto &x: vec[i]) s.insert(x);
		while(ptr < m && vals[ptr] == i){
			if((int)s.size() < i) return 0;
			for(int j = 0; j < i; j++) s.erase(s.begin());
			ptr++;
		}
		while(!s.empty() && (*s.begin()) == i) s.erase(s.begin());
	}
	return 1;
}
// g++ -std=c++17 -o run -Wshadow -Wall -Wextra -fsanitize=undefined -fsanitize=address teams.cpp grader.cpp
| # | 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... |