Submission #1007450

#TimeUsernameProblemLanguageResultExecution timeMemory
1007450bachhoangxuan팀들 (IOI15_teams)C++17
0 / 100
130 ms23244 KiB
#include "teams.h" #include<bits/stdc++.h> using namespace std; const int maxn = 5e5+5; int n,lt[maxn],rt[maxn]; void init(int N, int A[], int B[]) { for(int i=0;i<N;i++){ lt[B[i]]++; rt[A[i]]++; } for(int i=1;i<=N;i++) lt[i]+=lt[i-1]; for(int i=N;i>=1;i--) rt[i]+=rt[i+1]; n=N; } int can(int M, int K[]) { vector<int> com; for(int i=0;i<M;i++) com.push_back(K[i]); sort(com.begin(),com.end()); com.erase(unique(com.begin(),com.end()),com.end()); int sz=(int)com.size(); vector<int> cnt(sz); for(int i=0;i<M;i++) cnt[lower_bound(com.begin(),com.end(),K[i])-com.begin()]++; for(int i=0;i<sz;i++){ if(cnt[i]>n/com[i]) return 0; cnt[i]*=com[i]; if(i) cnt[i]+=cnt[i-1]; if(cnt[i]>n) return 0; } for(int i=0;i<sz;i++) for(int j=i;j<sz;j++){ int num=n-(lt[com[i]-1]+rt[com[j]+1]); int val=(i?cnt[j]-cnt[i-1]:cnt[j]); if(num<val) return 0; } 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...