Submission #67867

#TimeUsernameProblemLanguageResultExecution timeMemory
67867theknife2001Teams (IOI15_teams)C++17
34 / 100
4019 ms20272 KiB
#include "teams.h"
//#include "grader.cpp"
#include <bits/stdc++.h>
#define ii pair < int , int>
#define se second
#define fi first


using namespace std;
const int N=1e5+55;
ii a[N];
int b[N];
int n;
priority_queue< int , vector < int > , greater < int > > pq;


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

int can(int M, int K[])
{
    for(int i=0;i<=n;i++)
        b[i]=0;
    for(int i=0;i<M;i++)
    {
        b[K[i]]++;
    }
    int j=0;
    for(int i=1;i<=n;i++)
    {
        while(j<n&&a[j].fi<=i)
            pq.push(a[j++].se);
        while(pq.size()&&pq.top()<i)
            pq.pop();
        int x=b[i]*i;
        while(x>0)
        {
            if(pq.size()==0)
                return 0;
            pq.pop();
            x--;
        }
    }
    while(pq.size())
        pq.pop();
	return 1;
}

Compilation message (stderr)

teams.cpp: In function 'void init(int, int*, int*)':
teams.cpp:17:34: warning: declaration of 'N' shadows a global declaration [-Wshadow]
 void init(int N, int A[], int B[])
                                  ^
teams.cpp:10:11: note: shadowed declaration is here
 const int N=1e5+55;
           ^
teams.cpp: In function 'int can(int, int*)':
teams.cpp:49:5: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
     while(pq.size())
     ^~~~~
teams.cpp:51:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
  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...