Submission #1218547

#TimeUsernameProblemLanguageResultExecution timeMemory
1218547LIATeams (IOI15_teams)C++17
0 / 100
4094 ms8272 KiB
#include "teams.h"
#include <vector>
#include <climits>
using namespace std;

static int n;
static vector<int> a, b;

void init(int N, int A[], int B[]) {
    n = N;
    a.assign(A, A + N);
    b.assign(B, B + N);
}

int can(int m, int K[]) {
    vector<int> e(m, 0), cnt(m, 0);
    for (int j = 0; j < m; ++j)
        for (int i = 0; i < n; ++i)
            if (a[i] <= K[j] && K[j] <= b[i])
                ++e[j];
    for (int i = 0; i < n; ++i) {
        int best = -1, bestE = INT_MAX;
        for (int j = 0; j < m; ++j)
            if (a[i] <= K[j] && K[j] <= b[i] && e[j] < bestE) {
                bestE = e[j];
                best  = j;
            }
        if (best != -1)
            ++cnt[best];
    }
    for (int j = 0; j < m; ++j)
        if (cnt[j] != K[j])
            return 0;
    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...