Submission #488457

#TimeUsernameProblemLanguageResultExecution timeMemory
488457blueTeams (IOI15_teams)C++17
0 / 100
4077 ms20324 KiB
#include "teams.h"
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
using namespace std;

using pii = pair<int, int>;
using vpii = vector<pii>;
using vi = vector<int>;

int N;
vpii PG;

void init(int N_, int A[], int B[])
{
    N = N_;
    for(int i = 0; i < N; i++) PG.push_back({A[i], B[i]});

    sort(PG.begin(), PG.end(), [] (pii p, pii q)
    {
        return p.second < q.second;
    });
}

int can(int M, int K[])
{
    sort(K, K+M);
    vpii P = PG;

    vi done(M, 0);

    int i = 0;

    for(int t = 0; t < M; t++)
    {
        while(done[t] != K[t])
        {
            if(i >= N) return 0;

            if(!(P[i].first <= K[t] && K[t] <= P[i].second))
            {
                i++;
                continue;
            }

            i++;
            done[t]++;
            continue;
        }
    }

	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...