Submission #1182180

#TimeUsernameProblemLanguageResultExecution timeMemory
1182180turskaTeams (IOI15_teams)C++20
34 / 100
4090 ms5256 KiB
#include "teams.h"
#include <bits/stdc++.h>
using namespace std;

int n;
const int mxN = 1e5;
array<int, 2> a[mxN];

void init(int N, int A[], int B[]) {
    n = N;
    for (int i=0; i<n; i++) a[i][0] = A[i], a[i][1] = B[i];
    sort(a, a+n);
}


int can(int M, int K[]) {
    using T = int;
    priority_queue<T, vector<T>, greater<T>> pq;
    sort(K, K+M);
    int j = 0;
    for (int i=0; i<M; i++) {
        while (j<n && a[j][0]<=K[i]) {
            pq.push(a[j][1]);
            j++;
        }
        while (pq.size() && pq.top()<K[i]) pq.pop();
        if (pq.size()<K[i]) return 0;
        for (int k=0; k<K[i]; k++) pq.pop();
    }

    return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...