Submission #1271404

#TimeUsernameProblemLanguageResultExecution timeMemory
1271404vtnoo팀들 (IOI15_teams)C++20
0 / 100
4094 ms10488 KiB
#ifndef teams_h
#define teams_h
#include <bits/stdc++.h>
using namespace std;

const int MAXN=500000;
int N, A[MAXN], B[MAXN];

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

int can(int M, int K[]) {
	vector<int> v(N);
    for(int i=0;i<N;i++){
        v[i]=i;
    }
	sort(v.begin(), v.end(), [&](int f, int s){
        if(A[f]==A[s]){
            return B[f]<B[s];
        }
        return A[f]<A[s];
    });
    sort(K, K+M);
    int j=0, listo=0;
    for(int i=0;i<M;i++){
        int student=v[j], cnt=0;
       /*  cout<<"=================="<<endl;
        cout<<student<<endl; */
        while(cnt<K[i]&&j<N&&A[student]<=K[i]&&K[i]<=B[student]){
            cnt++;
            j++;
            if(j<N)
                student=v[j];
        }
        /* cout<<i<<" "<<cnt<<endl; */
        if(cnt==K[i]){
            listo++;
        }
    }
    return listo==M;
}
#endif
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...