제출 #1331237

#제출 시각아이디문제언어결과실행 시간메모리
1331237tsetsenbileg팀들 (IOI15_teams)C++20
34 / 100
4094 ms27072 KiB
#include "teams.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
using ll = long long;
using pr = pair<int, int>;
const int INF = 1e9+7, MOD = 1e9+7;
vector<vector<int>> st;
int n;

void init(int N, int a[], int b[]) {
	n = N;
	st.resize(n+1);
	for (int i = 0; i < n; i++) st[a[i]].pb(b[i]);
}

int can(int m, int k[]) {
	sort(k, k+m);
	priority_queue<int, vector<int>, greater<int>> pq;
	int prev = 0;
	for (int i = 0; i < m; i++) {
		int cur = k[i];
		while (!pq.empty() && pq.top() < cur) pq.pop();
		for (int j = prev+1; j <= cur; j++) {
			for (auto l : st[j]) {
				if (l < cur) continue;
				pq.push(l);
			}
		}
		bool good = 1;
		prev = cur;
		while (cur) {
			cur--;
			if (pq.empty()) good = 0;
			else pq.pop();
		}
		if (!good) {
			// cout << 0;
			return 0;
		}
	}
	// cout << 1;
	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...