Submission #1301843

#TimeUsernameProblemLanguageResultExecution timeMemory
1301843nicolo_010Teams (IOI15_teams)C++20
0 / 100
4094 ms12544 KiB
#include <bits/stdc++.h>
#include "teams.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;

int n;
vector<int> a, b;

void init(int N, int* A, int *B) {
	n = N;
	for (int i=0; i<n; i++) {
		a.push_back(A[i]);
		b.push_back(B[i]);
	}
}

int can(int m, int* K) {
	vector<int> k;
	for (int i=0; i<m; i++) {
		k.push_back(K[i]);
	}
	sort(k.begin(), k.end());
	vector<pii> c(n);
	for (int i=0; i<n; i++) {
		c[i] = {a[i], b[i]};
	}
	sort(c.begin(), c.end());
	priority_queue<pii, vector<pii>, greater<pii>> pq;
	int j=0;
	int i=0;
	vector<int> ans(m, 0);
	while (i<n && j<m) {
		int ai = c[i].first;
		int bi = c[i].second;
		if (ai <= k[j] && k[j] <= bi) {
			ans[j]++;
			i++;
		}
		else {
			if (bi < k[j]) {
				i++;
			}
			else if (ai > k[j]) {
				j++;
			}
		}
		if (ans[j] == k[j]) {
			j++;
		}
	}
	for (i=0; i<m; i++) {
		if (ans[i] != k[i]) {
			return 0;
		}
	}
	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...