제출 #1140288

#제출 시각아이디문제언어결과실행 시간메모리
1140288efishel팀들 (IOI15_teams)C++20
21 / 100
4090 ms20684 KiB
#include "teams.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using ii = pair <ll, ll>;
using vii = vector <ii>;

ll n;
vll vl, vr;
// vll ve;

void init (int n, int aa[], int bb[]) {
	::n = n;
	vl = vll(aa, aa+n);
	vr = vll(bb, bb+n);
	// ve = vll(n);
	// iota(ve.begin(), ve.end(), 0);
	// sort(ve.begin(), ve.end(), [&](ll a, ll b) {
	// 	if (vr[a] != vr[b]) return vr[a] > vr[b];
	// 	return vl[a] < vl[b];
	// });
	// for (ll i : ve) {
	// 	cerr << vl[i] << ' ' << vr[i] << '\n';
	// }
}

int can (int m, int k[]) {
	vll th(k, k+m);
	sort(th.begin(), th.end());
	vector <char> used(n, false);
	for (ll i : th) {
		ll oi = i;
		vll uh;
		for (ll j = 0; j < n; j++) {
			if (vl[j] <= oi) uh.push_back(j);
		}
		sort(uh.begin(), uh.end(), [&](ll a, ll b) {
			return vr[a] < vr[b];
		});
		for (ll j : uh) {
			if (oi > vr[j] || used[j]) continue;
			i--;
			used[j] = true;
			if (i == 0) break;
		}
		if (i) return 0;
	}
	return 1;
	// ll j = 0;
	// for (ll i : th) {
	// 	ll oi = i;
	// 	while (i--) {
	// 		while (j < n && !(vl[j] <= oi && oi <= vr[j])) { j++; continue; }
	// 		if (j == n) return 0;
	// 		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...