Submission #255771

#TimeUsernameProblemLanguageResultExecution timeMemory
255771dolphingarlicTeams (IOI15_teams)C++14
0 / 100
4067 ms28152 KiB
#include "teams.h"
#include <bits/stdc++.h>
#define FOR(i, x, y) for (int i = x; i < y; i++)
using namespace std;

multiset<pair<int, int>> students;

void init(int N, int A[], int B[]) {
	FOR(i, 0, N) students.insert({B[i], A[i]});
}

int can(int M, int K[]) {
	sort(K, K + M);
	vector<pair<int, int>> removed;
	FOR(i, 0, M) {
		vector<pair<int, int>> to_remove;
		for (pair<int, int> j : students) {
			if (K[i] <= j.first && K[i] >= j.second) to_remove.push_back(j);
			if (K[i] > j.first || to_remove.size() == K[i]) break;
		}
		if (to_remove.size() != K[i]) {
			for (pair<int, int> j : removed) students.insert(j);
			return 0;
		}
		for (pair<int, int> j : to_remove) {
			students.erase(students.find(j));
			removed.push_back(j);
		}
	}
	for (pair<int, int> j : removed) students.insert(j);
	return 1;
}

Compilation message (stderr)

teams.cpp: In function 'int can(int, int*)':
teams.cpp:19:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (K[i] > j.first || to_remove.size() == K[i]) break;
                          ~~~~~~~~~~~~~~~~~^~~~~~~
teams.cpp:21:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (to_remove.size() != K[i]) {
       ~~~~~~~~~~~~~~~~~^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...