Submission #712380

#TimeUsernameProblemLanguageResultExecution timeMemory
712380Johann팀들 (IOI15_teams)C++14
34 / 100
4038 ms19068 KiB
#include "teams.h"

#include "bits/stdc++.h"
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef vector<pii> vpii;
typedef vector<int> vi;
#define sz(x) (int)(x).size()
#define all(x) (x).begin(), (x).end()

vpii S;
void init(int N, int A[], int B[])
{
	S.resize(N);
	for (int i = 0; i < N; ++i)
		S[i] = {A[i], B[i]};
	sort(all(S));
}

int can(int M, int K[])
{
	sort(K, K + M);
	priority_queue<int, vi, greater<int>> pq; // b : end of interval
	int idx = 0;
	for (int i = 0; i < M; ++i)
	{
		int todo = K[i];
		while (idx < sz(S) && S[idx].first <= K[i])
			pq.push(S[idx++].second);
		while (todo)
		{
			if (pq.empty())
				return 0;
			if (pq.top() >= K[i])
				--todo;
			pq.pop();
		}
	}
	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...