Submission #1345464

#TimeUsernameProblemLanguageResultExecution timeMemory
1345464enzyTeams (IOI15_teams)C++20
34 / 100
4094 ms48368 KiB
#include "teams.h"
#include<bits/stdc++.h>
#define pii pair<int,int>
using namespace std;
const int maxn=5e5+10;
vector<int>ord[maxn];

void init(int N, int A[], int B[]){
	for(int i=0;i<N;i++) ord[A[i]].push_back(B[i]);
}

int can(int M, int K[]){
	// cerr << "query" << endl;
	sort(K,K+M);
	int lst=0;
	multiset<int>s;
	for(int i=0;i<M;i++){
		// cerr << "! " << K[i] << endl;
		for(int j=lst+1;j<=K[i];j++)
			for(int x : ord[j]) s.insert(x);
		// cerr << s.size() << endl;
		while(s.size()){
			auto f=s.begin();
			int u=*f;
			if(u>=K[i]) break;
			// cerr << "removing " << u << endl;
			s.erase(f);
		}
		if(s.size()<K[i]) return 0;
		for(int j=0;j<K[i];j++) s.erase(s.begin());
		lst=K[i];
	}
	return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...