#ifndef teams_h
#define teams_h
#include <bits/stdc++.h>
using namespace std;
const int MAXN=500005;
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(B[f]==B[s]){
return A[f]<A[s];
}
return B[f]<B[s];
});
sort(K, K+M);
int j=0;
multiset<pair<int,int>> s;
for(int i=0;i<M;i++){
while(j<N&&A[v[j]]<=K[i]){
s.insert(make_pair(B[v[j]], A[v[j]]));
j++;
}
auto it=s.lower_bound({K[i], 0});
int cnt=0;
while(it!=s.end()&&cnt<K[i]){
cnt++;
it=s.erase(it);
}
/* cout<<"=============="<<endl;
cout<<i<<endl;
cout<<cnt<<endl;
cout<<s.size()<<endl;
cout<<j<<endl; */
if(cnt!=K[i])return false;
}
return true;
}
#endif
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |