Submission #1255528

#TimeUsernameProblemLanguageResultExecution timeMemory
1255528testaccountTeams (IOI15_teams)C++20
34 / 100
4088 ms10400 KiB
#include "teams.h" #include<bits/stdc++.h> using namespace std; #define pii pair<int,int> int n; vector<pii> arr; vector<int> sz; int s; void init(int N, int A[], int B[]) { n = N; arr.resize(n); for(int i = 0; i < n; i++){ arr[i] = {A[i], B[i]}; } sort(arr.begin(),arr.end()); } int can(int m, int sizes[]) { vector<int> K(m); for(int i = 0; i < m; i++){ K[i] = sizes[i]; } sort(K.begin(),K.end()); s = 0; for(int i = 0; i < m; i++){ s += K[i]; } if(s > n){ return false; } priority_queue<int, vector<int>, greater<int>> pq; int cur = 0; int cs = 0; for(int p = 1; p <= n; p++){ while(pq.size() && pq.top() < p){ pq.pop(); } while(cs < n && arr[cs].first == p){ pq.push(arr[cs].second); cs++; } while(cur < m && K[cur] == p){ for(int i = 1; i <= p; i++){ if(pq.empty()){ return false; } pq.pop(); } cur++; } } return true; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...