Submission #1154397

#TimeUsernameProblemLanguageResultExecution timeMemory
1154397ZheingTeams (IOI15_teams)C++20
0 / 100
4094 ms9492 KiB
#include <bits/stdc++.h> #include "teams.h" using namespace std; int N; int *A, *B; void init(int n, int *a, int *b) { N = n; A = new int[n]; B = new int[n]; for (int i = 0; i < n; ++i) { A[i] = a[i]; B[i] = b[i]; } } int can(int m, int *K) { vector<int> kList(K, K + m); sort(kList.begin(), kList.end(), greater<int>()); vector<bool> assigned(N, false); int sum = 0; for (int i = 0; i < m; ++i) sum += K[i]; if (sum > N) return 0; for (int k : kList) { int count = 0; for (int i = 0; i < N; ++i) { if (!assigned[i] && A[i] <= k && k <= B[i]) { count++; } } if (count < k) return 0; int needed = k; for (int i = 0; i < N && needed > 0; ++i) { if (!assigned[i] && A[i] <= k && k <= B[i]) { assigned[i] = true; needed--; } } } 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...