제출 #45830

#제출 시각아이디문제언어결과실행 시간메모리
45830RayaBurong25_1팀들 (IOI15_teams)C++17
34 / 100
4032 ms18224 KiB
//stupid solution to just get some points #include "teams.h" #include <algorithm> #include <vector> #include <queue> #include <stdio.h> typedef struct point point; struct point { int a, b; }; int n; std::vector<point> P; int sortAB(point a, point b) { return (a.a < b.a || (a.a == b.a && a.b < b.b)); } void init(int N, int A[], int B[]) { n = N; int i; for (i = 0; i < N; i++) P.push_back({A[i], B[i]}); std::sort(P.begin(), P.end(), sortAB); } std::priority_queue<int> PQ; int can(int M, int K[]) { while (!PQ.empty()) PQ.pop(); std::sort(&K[0], &K[M]); int i, j = 0, k; for (i = 0; i < M; i++) { while (j < n && P[j].a <= K[i]) { PQ.push(-P[j].b); // printf("push %d\n", P[j].b); j++; } for (k = 0; k < K[i]; k++) { while (PQ.size() > 0 && -PQ.top() < K[i]) { // printf("//pop %d\n", -PQ.top()); PQ.pop(); } if (PQ.size() > 0) { // printf("pop %d\n", -PQ.top()); PQ.pop(); } else 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...