Submission #1246516

#TimeUsernameProblemLanguageResultExecution timeMemory
1246516countlessTeams (IOI15_teams)C++20
0 / 100
4091 ms14228 KiB
#include "teams.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define sp <<" "<< #define endl "\n" int n; vector<int> a, b, o; void init(int N, int A[], int B[]) { n = N; a.resize(n), b.resize(n), o.resize(n); for (int i = 0; i < n; i++) { a[i] = A[i], b[i] = B[i]; } iota(o.begin(), o.end(), 0); sort(o.begin(), o.end(), [&](int i, int j) { return a[i] < a[j]; }); } int can(int M, int K[]) { int m = M; vector<int> k(m); ll sum = 0; for (int i = 0; i < m; i++) { k[i] = K[i]; sum += k[i]; } if (sum > n) return 0; sort(k.begin(), k.end()); priority_queue<int, vector<int>, greater<int>> pq; int l = 0, r = 0; for (int i = 0; i < M; i++) { while (r < n and a[o[r]] <= k[i]) r++; for (int j = l; j < r; j++) { pq.emplace(b[o[j]]); } l = r; for (int j = 0; j < k[i]; j++) { if (pq.empty()) return 0; pq.pop(); } } 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...