Submission #1312798

#TimeUsernameProblemLanguageResultExecution timeMemory
1312798activedeltorreTeams (IOI15_teams)C++20
0 / 100
4091 ms10480 KiB
#include "teams.h"
#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
pair<int,int>vec[500005];
int n;
bool cmp(pair<int,int>a,pair<int,int>b)
{
    if(a.second==b.second)
    {
        return a.first<b.first;
    }
    return a.second<b.second;
}
void init(int N, int A[], int B[]) {
    n=N;
    for(int i=0;i<N;i++)
    {
        vec[i+1].first=A[i];
        vec[i+1].second=B[i];
    }
    sort(vec+1,vec+n+1,cmp);
}
priority_queue<int>pq;
int can(int M, int K[]) {
    int dr,index=M-1;
    while(pq.size())
    {
        pq.pop();
    }
    for(int i=n;i>=0;i--)
    {
        while(vec[i].second<K[index] && index>=0)
        {
            int cnt=K[index];
            while(pq.size() && pq.top()>K[index])
            {
                pq.pop();
            }
            while(pq.size() && K[index])
            {
                K[index]--;
                pq.pop();
            }
            if(K[index]!=0)
            {
                return 0;
            }
            else{
                index--;
            }
        }
        pq.push(vec[i].first);
    }
	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...