Submission #1246475

#TimeUsernameProblemLanguageResultExecution timeMemory
1246475SpyrosAlivTeams (IOI15_teams)C++20
34 / 100
4091 ms12164 KiB
#include "teams.h"
#include <bits/stdc++.h>
using namespace std;

int n;
vector<pair<int, int>> rr;

void init(int N, int A[], int B[]) {
	n = N;
	for (int i = 0; i < n; i++) {
		rr.push_back({A[i], B[i]});
	}
	sort(rr.begin(), rr.end(), [&](pair<int, int> a, pair<int, int> b) {
		if (a.second != b.second) return a.second < b.second;
		return a.first < b.first;
	});
}

int can(int M, int K[]) {
	int m = M;
	vector<int> cnt(n+1, 0);
	set<int> points;
	points.insert(n+10);
	for (int i = 0; i < m; i++) {
		cnt[K[i]] += K[i];
		points.insert(K[i]);
	}
	for (auto [l, r]: rr) {
		auto nxt = points.lower_bound(l);
		if (*nxt > r) continue;
		cnt[*nxt]--;
		if (cnt[*nxt] == 0) {
			points.erase(nxt);
		}
	}
	return points.size() == 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...