제출 #1332015

#제출 시각아이디문제언어결과실행 시간메모리
1332015orgiloogiiTeams (IOI15_teams)C++20
34 / 100
4091 ms29056 KiB
#include "teams.h"
#include <bits/stdc++.h>
using namespace std;
vector <vector <int>> adj;
int n;
void init(int N, int A[], int B[]) {
	n = N;
	adj.resize(N + 1);
	for (int i = 0;i < N;i++) {
		adj[A[i]].push_back(B[i]);
	}
}

int can(int m, int k[]) {
	sort(k, k + m);
	priority_queue <int, vector <int>, greater<int>> pq;
	int j = 0;
	for (int i = 1;i <= n;i++) {
		for (auto x : adj[i]) pq.push(x);
		while (j < m && k[j] == i) {
			while (pq.size() && pq.top() < i) pq.pop();
			if (pq.size() < i) {
				return 0;
			}
			for (int l = 0;l < i;l++) {
				// cout << pq.top() << " ";
				pq.pop();
			}
			// cout << endl;
			j++;
		}	
	}
	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...