Submission #255776

#TimeUsernameProblemLanguageResultExecution timeMemory
255776dolphingarlicTeams (IOI15_teams)C++14
34 / 100
4081 ms28132 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 (auto j = students.lower_bound({K[i], 0}); j != students.end(); j++) { if (K[i] >= (*j).second) to_remove.push_back(*j); if (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:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (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...