제출 #434354

#제출 시각아이디문제언어결과실행 시간메모리
434354qwerasdfzxclTeams (IOI15_teams)C++14
34 / 100
4054 ms36808 KiB
#include "teams.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; pair<int, int> a[500500]; int n; bool cmp(pair<int, int> &x, pair<int, int> &y){ if (x.second==y.second) return x.first<y.first; return x.second>y.second; } void init(int N, int A[], int B[]) { n = N; for (int i=0;i<n;i++) a[i] = {A[i], B[i]}; sort(a, a+n, cmp); } int can(int M, int K[]) { int S = 0; for (int i=0;i<M;i++) S += K[i]; if (S>n) return 0; sort(K, K+M, greater<int>()); multiset<int> st; int pt = 0; for (int i=0;i<M;i++){ for (;pt<n;pt++){ if (a[pt].second<K[i]) break; st.insert(a[pt].first); } auto iter = st.upper_bound(K[i]); auto iter2 = iter; int cnt = 0; while(cnt<K[i] && iter2!=st.begin()){ --iter2; cnt++; } if (cnt<K[i]) return 0; st.erase(iter2, iter); } 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...