제출 #368048

#제출 시각아이디문제언어결과실행 시간메모리
368048KoD팀들 (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

컴파일 시 표준 에러 (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...