Submission #368048

#TimeUsernameProblemLanguageResultExecution timeMemory
368048KoDTeams (IOI15_teams)C++17
34 / 100
4074 ms39976 KiB
#ifndef LOCAL #include "teams.h" #endif #include <vector> #include <algorithm> #include <utility> #include <numeric> #include <iostream> #include <queue> template <class T> using Vec = std::vector<T>; int N; Vec<int> A, B; Vec<Vec<int>> store; void init(int n, int a[], int b[]) { N = n; A.resize(N); B.resize(N); store.resize(N + 1); for (int i = 0; i < N; ++i) { A[i] = a[i]; B[i] = b[i]; store[A[i]].push_back(B[i]); } } int solve(const int M, const Vec<int> K) { std::priority_queue<int, Vec<int>, std::greater<int>> que; int last = 0; for (const auto x: K) { while (last < x) { last += 1; for (const auto r: store[last]) { que.push(r); } } while (!que.empty() && que.top() < x) { que.pop(); } if (que.size() < x) { return 0; } for (int i = 0; i < x; ++i) { que.pop(); } } return 1; } int can(int m, int k[]) { Vec<int> K(k, k + m); std::sort(K.begin(), K.end()); return solve(m, K); } #ifdef LOCAL int main() { int N; std::cin >> N; int A[100] = {}; int B[100] = {}; for (int i = 0; i < N; ++i) { std::cin >> A[i] >> B[i]; } init(N, A, B); int Q; std::cin >> Q; int K[100] = {}; for (int i = 0; i < Q; ++i) { int M; std::cin >> M; for (int j = 0; j < M; ++j) { std::cin >> K[j]; } std::cout << can(M, K) << '\n'; } return 0; } #endif

Compilation message (stderr)

teams.cpp: In function 'int solve(int, Vec<int>)':
teams.cpp:44:24: warning: comparison of integer expressions of different signedness: 'std::priority_queue<int, std::vector<int, std::allocator<int> >, std::greater<int> >::size_type' {aka 'long unsigned int'} and 'const int' [-Wsign-compare]
   44 |         if (que.size() < x) {
      |             ~~~~~~~~~~~^~~
teams.cpp:31:21: warning: unused parameter 'M' [-Wunused-parameter]
   31 | int solve(const int M, const Vec<int> K) {
      |           ~~~~~~~~~~^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...