Submission #424512

#TimeUsernameProblemLanguageResultExecution timeMemory
42451279brueTeams (IOI15_teams)C++14
34 / 100
4078 ms17036 KiB
#include <bits/stdc++.h>
#include "teams.h"

using namespace std;

typedef long long ll;

int n;
pair<int, int> arr[500002];

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

priority_queue<int, vector<int>, greater<int> > pq;

int can(int M, int K[]){
    while(!pq.empty()) pq.pop();
	sort(K, K+M);
    int pnt = 1;
	for(int i=0; i<M; i++){
	    while(pnt <= n && arr[pnt].first <= K[i]){
            pq.push(arr[pnt++].second);
	    }
	    int cnt = 0;
	    while(!pq.empty() && cnt<K[i]){
            if(pq.top() < K[i]){
                pq.pop();
                continue;
            }
            pq.pop();
            cnt++;
	    }
	    if(cnt < K[i]) return false;
    }
    return true;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...