Submission #793556

#TimeUsernameProblemLanguageResultExecution timeMemory
793556UltraFalconTeams (IOI15_teams)C++17
0 / 100
353 ms42820 KiB
// pragmas #ifndef DEBUG #endif #include <bits/stdc++.h> #include "teams.h" // #define int long long using ll = long long; using namespace std; int N; vector<int> A; vector<int> B; vector<array<int, 2>> students_b; set<array<int, 2>> students_a; void init(int _N, int _A[], int _B[]) { N = _N; A.assign(N, -1); for (int i=0; i<N; i++) { A[i] = _A[i]; } B.assign(N, -1); for (int i=0; i<N; i++) { B[i] = _B[i]; } students_b.clear(); for (int i=0; i<N; i++) { students_b.push_back({B[i], i}); } sort(students_b.begin(), students_b.end()); students_a.clear(); for (int i=0; i<N; i++) { students_a.insert({A[i], i}); } } int can(int M, int K[]) { int j = 0; for (int i=0; i<M; i++) { while (j<N && students_b[j][0]<K[i]) { int idx = students_b[j][1]; if (students_a.count({A[idx], idx})) students_a.erase({A[idx], idx}); j++; } for (int l=0; l<K[i]; l++) { if (students_a.empty()) return 0; students_a.erase(students_a.begin()); } } 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...