# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
102636 |
2019-03-26T12:29:20 Z |
wxh010910 |
Teams (IOI15_teams) |
C++17 |
|
2308 ms |
348376 KB |
#include <bits/stdc++.h>
#include "teams.h"
using namespace std;
class node {
public:
node* l;
node* r;
int s;
};
vector<node*> roots;
node* null;
int n;
void init_null() {
null = new node();
null->l = null->r = null;
null->s = 0;
}
node* insert(node* u, int l, int r, int p) {
node* v = new node();
v->l = u->l;
v->r = u->r;
v->s = u->s + 1;
if (l != r) {
int y = (l + r) >> 1;
if (p <= y) {
v->l = insert(v->l, l, y, p);
} else {
v->r = insert(v->r, y + 1, r, p);
}
}
return v;
}
int query(node* v, int l, int r, int p) {
if (l == r) {
return v->s;
} else {
int y = (l + r) >> 1;
if (p <= y) {
return query(v->l, l, y, p) + v->r->s;
} else {
return query(v->r, y + 1, r, p);
}
}
}
int kth(node* v, node* u, int l, int r, int k) {
if (l == r) {
return r;
} else {
int y = (l + r) >> 1;
if (k > v->r->s - u->r->s) {
return kth(v->l, u->l, l, y, k - (v->r->s - u->r->s));
} else {
return kth(v->r, u->r, y + 1, r, k);
}
}
}
void init(int N, int A[], int B[]) {
n = N;
init_null();
vector<vector<int>> events(n + 1);
for (int i = 0; i < n; ++i) {
events[A[i]].push_back(B[i]);
}
roots.assign(n + 1, null);
for (int i = 1; i <= n; ++i) {
roots[i] = roots[i - 1];
for (auto j : events[i]) {
roots[i] = insert(roots[i], 1, n, j);
}
}
}
int can(int M, int K[]) {
sort(K, K + M);
vector<int> height(1, n);
vector<int> pos(1, 0);
vector<int> sum(1, 0);
for (int i = 0; i < M; ++i) {
while (height.back() < K[i]) {
height.pop_back();
pos.pop_back();
sum.pop_back();
}
int cnt = query(roots[K[i]], 1, n, K[i]) + (sum.back() - query(roots[pos.back()], 1, n, K[i]));
if (cnt < K[i]) {
return 0;
}
cnt -= K[i];
while (true) {
int h = kth(roots[K[i]], roots[pos.back()], 1, n, cnt - sum.back());
if (h > height.back()) {
height.pop_back();
pos.pop_back();
sum.pop_back();
} else {
height.push_back(h);
pos.push_back(K[i]);
sum.push_back(cnt);
break;
}
}
}
return 1;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
256 KB |
Output is correct |
2 |
Correct |
2 ms |
256 KB |
Output is correct |
3 |
Correct |
3 ms |
384 KB |
Output is correct |
4 |
Correct |
3 ms |
384 KB |
Output is correct |
5 |
Correct |
3 ms |
384 KB |
Output is correct |
6 |
Correct |
4 ms |
384 KB |
Output is correct |
7 |
Correct |
2 ms |
384 KB |
Output is correct |
8 |
Correct |
3 ms |
384 KB |
Output is correct |
9 |
Correct |
3 ms |
384 KB |
Output is correct |
10 |
Correct |
3 ms |
384 KB |
Output is correct |
11 |
Correct |
3 ms |
384 KB |
Output is correct |
12 |
Correct |
3 ms |
384 KB |
Output is correct |
13 |
Correct |
3 ms |
384 KB |
Output is correct |
14 |
Correct |
2 ms |
384 KB |
Output is correct |
15 |
Correct |
3 ms |
384 KB |
Output is correct |
16 |
Correct |
3 ms |
384 KB |
Output is correct |
17 |
Correct |
2 ms |
384 KB |
Output is correct |
18 |
Correct |
3 ms |
256 KB |
Output is correct |
19 |
Correct |
2 ms |
384 KB |
Output is correct |
20 |
Correct |
3 ms |
384 KB |
Output is correct |
21 |
Correct |
3 ms |
256 KB |
Output is correct |
22 |
Correct |
3 ms |
384 KB |
Output is correct |
23 |
Correct |
3 ms |
256 KB |
Output is correct |
24 |
Correct |
2 ms |
368 KB |
Output is correct |
25 |
Correct |
2 ms |
256 KB |
Output is correct |
26 |
Correct |
2 ms |
256 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
195 ms |
62544 KB |
Output is correct |
2 |
Correct |
152 ms |
62584 KB |
Output is correct |
3 |
Correct |
167 ms |
62620 KB |
Output is correct |
4 |
Correct |
166 ms |
62840 KB |
Output is correct |
5 |
Correct |
115 ms |
60920 KB |
Output is correct |
6 |
Correct |
106 ms |
60920 KB |
Output is correct |
7 |
Correct |
107 ms |
60940 KB |
Output is correct |
8 |
Correct |
95 ms |
60968 KB |
Output is correct |
9 |
Correct |
107 ms |
58808 KB |
Output is correct |
10 |
Correct |
102 ms |
58356 KB |
Output is correct |
11 |
Correct |
129 ms |
61624 KB |
Output is correct |
12 |
Correct |
100 ms |
58648 KB |
Output is correct |
13 |
Correct |
121 ms |
62040 KB |
Output is correct |
14 |
Correct |
129 ms |
60272 KB |
Output is correct |
15 |
Correct |
149 ms |
62456 KB |
Output is correct |
16 |
Correct |
172 ms |
62376 KB |
Output is correct |
17 |
Correct |
118 ms |
62200 KB |
Output is correct |
18 |
Correct |
103 ms |
62124 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
153 ms |
62840 KB |
Output is correct |
2 |
Correct |
207 ms |
62840 KB |
Output is correct |
3 |
Correct |
450 ms |
62968 KB |
Output is correct |
4 |
Correct |
180 ms |
62840 KB |
Output is correct |
5 |
Correct |
162 ms |
61256 KB |
Output is correct |
6 |
Correct |
144 ms |
61176 KB |
Output is correct |
7 |
Correct |
103 ms |
61176 KB |
Output is correct |
8 |
Correct |
118 ms |
61148 KB |
Output is correct |
9 |
Correct |
102 ms |
58792 KB |
Output is correct |
10 |
Correct |
120 ms |
58460 KB |
Output is correct |
11 |
Correct |
125 ms |
61836 KB |
Output is correct |
12 |
Correct |
141 ms |
58736 KB |
Output is correct |
13 |
Correct |
240 ms |
62272 KB |
Output is correct |
14 |
Correct |
467 ms |
62200 KB |
Output is correct |
15 |
Correct |
204 ms |
62628 KB |
Output is correct |
16 |
Correct |
168 ms |
62584 KB |
Output is correct |
17 |
Correct |
139 ms |
62328 KB |
Output is correct |
18 |
Correct |
130 ms |
62340 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1342 ms |
348084 KB |
Output is correct |
2 |
Correct |
1283 ms |
348376 KB |
Output is correct |
3 |
Correct |
2308 ms |
348364 KB |
Output is correct |
4 |
Correct |
1105 ms |
348124 KB |
Output is correct |
5 |
Correct |
621 ms |
338936 KB |
Output is correct |
6 |
Correct |
610 ms |
339136 KB |
Output is correct |
7 |
Correct |
544 ms |
339020 KB |
Output is correct |
8 |
Correct |
608 ms |
339156 KB |
Output is correct |
9 |
Correct |
601 ms |
324060 KB |
Output is correct |
10 |
Correct |
632 ms |
337908 KB |
Output is correct |
11 |
Correct |
660 ms |
338408 KB |
Output is correct |
12 |
Correct |
727 ms |
338924 KB |
Output is correct |
13 |
Correct |
1365 ms |
341568 KB |
Output is correct |
14 |
Correct |
1997 ms |
344616 KB |
Output is correct |
15 |
Correct |
1061 ms |
346576 KB |
Output is correct |
16 |
Correct |
977 ms |
346744 KB |
Output is correct |
17 |
Correct |
679 ms |
341412 KB |
Output is correct |
18 |
Correct |
641 ms |
341388 KB |
Output is correct |