Submission #1301521

#TimeUsernameProblemLanguageResultExecution timeMemory
1301521timeflewTeams (IOI15_teams)C++20
0 / 100
4094 ms6596 KiB
#include "teams.h"
#include<bits/stdc++.h>
using namespace std;

#define ll long long

int n;
int idx[500000];
multiset<int> ms;
int *a, *b;

void init(int N, int A[], int B[]) {
	n=N;	
	a=A, b=B;
}

int can(int M, int K[]) {
	ms.clear();
	int cnt=0;
	sort(K, K+M);
	int ptr=0;
	iota(idx, idx+n, 0);
	sort(idx, idx+n, [&](int i, int j) {
		if(a[i]!=a[j])
			return a[i]<a[j];
		else
			return b[i]<b[j];
	});
	for(int i=0; i<M; i++) {
		while(ptr<n&&a[idx[ptr]]<=K[i]) {
			ms.insert(b[idx[ptr++]]);
		}
		auto it=ms.lower_bound(K[i]);
		if(it==ms.end())
			return 0;
		else
			ms.erase(it);
	}
	return 1;
}
//	kustov_vadim_533 orz
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...