제출 #770798

#제출 시각아이디문제언어결과실행 시간메모리
770798That_Salamander팀들 (IOI15_teams)C++14
34 / 100
4067 ms38572 KiB
#include <bits/stdc++.h>

#define FOR(var,bound) for(int var = 0; var < bound; var++)
#define FORB(var,lb,ub) for (int var = lb; var < ub; var++)
#define FORR(var,bound) for(int var = bound-1; var >= 0; var--)

using namespace std;

typedef long long ll;
typedef vector<int> vi;
typedef vector<vector<int>> vvi;
typedef pair<int, int> pii;

int n, a[500000], b[500000];

void init(int N, int A[], int B[]) {
    n = N;
    memcpy(a, A, n * sizeof(a[0]));
    memcpy(b, B, n * sizeof(b[0]));
}

int can(int m, int k[]) {
    sort(k, k + m);

    auto cmp = [](pii a, pii b) {
        return pii{a.second, a.first} < pii{b.second, b.first};
    };

    multiset<pair<int, int>> unused;
    multiset<pair<int, int>, decltype(cmp)> available(cmp);

    FOR(i, n) {
        unused.insert({a[i], b[i]});
    }

    FOR(i, m) {
        int v = k[i];

        while (unused.size() && unused.begin()->first <= v) {
            available.insert(*(unused.begin()));
            unused.erase(unused.begin());
        }

        while (available.size() && available.begin() ->second < v) {
            available.erase(available.begin());
        }

        FOR(j, v) {
            if (available.empty()) return 0;
            available.erase(available.begin());
        }
    }

    return true;
}

#ifdef LOCAL_TEST
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;
    cin >> n;

    vector<int> a(n), b(n);

    FOR(i, n) {
        cin >> a[i] >> b[i];
    }

    init(n, a.data(), b.data());

    int q;
    cin >> q;

    FOR(i, q) {
        int m;
        cin >> m;

        vector<int> k(m);

        FOR(j, m) {
            cin >> k[j];
        }

        cout << (can(m, k.data()) ? "YES" : "NO") << endl;
    }
}
#endif

컴파일 시 표준 에러 (stderr) 메시지

teams.cpp: In lambda function:
teams.cpp:25:30: warning: declaration of 'b' shadows a global declaration [-Wshadow]
   25 |     auto cmp = [](pii a, pii b) {
      |                          ~~~~^
teams.cpp:14:19: note: shadowed declaration is here
   14 | int n, a[500000], b[500000];
      |                   ^
teams.cpp:25:23: warning: declaration of 'a' shadows a global declaration [-Wshadow]
   25 |     auto cmp = [](pii a, pii b) {
      |                   ~~~~^
teams.cpp:14:8: note: shadowed declaration is here
   14 | int n, a[500000], b[500000];
      |        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...