이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "teams.h"
#include <queue>
#include <vector>
#include <algorithm>
std::priority_queue<int, std::vector<int>, std::greater<int>> q;
int *a, *b, n;
void init(int N, int A[], int B[]) {
n = N, a = A, b = B;
}
struct Event
{
int t, x, r;
bool operator<(Event e) { if(x == e.x) return t < e.t; return x < e.x; }
};
std::vector<Event> events;
int can(int M, int K[]) {
for(int i = 0; i < n; i++)
events.push_back({0, a[i], b[i]});
for(int i = 0; i < M; i++)
events.push_back({1, K[i], K[i]});
std::sort(events.begin(), events.end());
for(int i = 0; i < n + M; i++) {
while(q.size() && q.top() < events[i].x)
q.pop();
if(!events[i].t) q.push(events[i].r);
else {
while(events[i].r--) {
if(!q.size()) return 0;
q.pop();
}
}
}
return 1;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |