Submission #287296

#TimeUsernameProblemLanguageResultExecution timeMemory
287296amoo_safarTeams (IOI15_teams)C++17
34 / 100
4067 ms14840 KiB
#include "teams.h" #include <bits/stdc++.h> #define pb push_back using namespace std; const int N = 1e5 + 10; int n, A[N], B[N]; vector<int> st[N]; void init(int _n, int _A[], int _B[]) { n = _n; for(int i = 0; i < n; i++) A[i] = _A[i]; for(int i = 0; i < n; i++) B[i] = _B[i] + 1; for(int i = 0; i < n; i++) st[A[i]].pb(B[i]); } priority_queue< int, vector<int>, greater<int> > pq; int K[N]; int can(int m, int _K[]){ for(int i = 0; i < m; i++) K[i] = _K[i]; while(!pq.empty()) pq.pop(); int sm = 0; for(int i = 0; i < m; i++){ sm += K[i]; if(sm > n) return 0; } sort(K, K + m); int rq, fr, p = -1; for(int i = 0; i < m; i++){ while(p < K[i]){ p ++; for(auto &x : st[p]) pq.push(x); } rq = K[i]; while(!pq.empty() && rq){ fr = pq.top(); pq.pop(); if(fr > K[i]) rq --; } if(rq) 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...