Submission #434082

#TimeUsernameProblemLanguageResultExecution timeMemory
434082TangentTeams (IOI15_teams)C++17
34 / 100
4078 ms16444 KiB
#include "teams.h"
#include "bits/stdc++.h"
 
using namespace std;
 
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vii;
typedef vector<ll> vll;
typedef vector<pii> vpii;
typedef vector<pll> vpll;
typedef vector<vii> vvii;
typedef vector<vll> vvll;
typedef vector<vpii> vvpii;
typedef vector<vpll> vvpll;
 
#define ffor(i, a, b) for (ll i = (a); i < (ll)(b); i++)
#define fford(i, a, b) for (ll i = (a); i > (ll)(b); i--)
#define rep(i, n) ffor(i, 0, n)
#define forin(x, a) for (auto &x: a)
#define all(a) a.begin(), a.end()

vpii students;

void init(int N, int A[], int B[]) {
	rep(i, N) {
		students.emplace_back(B[i], A[i]);
	}
	sort(all(students));
	rep(i, N) {
		swap(students[i].first, students[i].second);
	}
}

int can(int M, int K[]) {
	map<int, int> k;
	rep(i, M) {
		k[K[i]] += K[i];
	}
	forin(s, students) {
		auto lowest = k.lower_bound(s.first);
		if (lowest != k.end() && lowest->first <= s.second) {
			int x = lowest->first;
			k[x]--;
			if (!k[x]) {
				k.erase(x);
			}
		}
	}
	return k.empty();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...