#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pp pair<pii, int>
const int maxn = 200010;
int N, K;
vector<pp> events;
int seg[maxn*4];
void up(int spot, int val, int ss = 0, int se = 2*N-1, int si = 0) {
if (ss > se) return;
if (ss == se) {
seg[si] = max(seg[si], val);
return;
}
int mid = (ss+se)/2;
if (spot <= mid) {
up(spot, val, ss, mid, si*2+1);
}
else {
up(spot, val, mid+1, se, si*2+2);
}
seg[si] = max(seg[si*2+1], seg[si*2+2]);
}
int query(int qs, int qe, int ss = 0, int se = 2*N-1, int si = 0) {
if (qs > se || qe < ss) return 0;
if (qs <= ss && se <= qe) return seg[si];
int mid = (ss+se)/2;
return max(query(qs, qe, ss, mid, si*2+1), query(qs, qe, mid+1, se, si*2+2));
}
map<int, int> compress;
set<int> spots;
int lens[maxn];
int lefts[maxn], rights[maxn];
vector<int> lenlist[maxn];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> N >> K;
int a, b;
for (int i = 0; i < N; i++) {
cin >> a >> b;
events.push_back(pp(pii(a, b), i));
spots.insert(a);
spots.insert(b);
}
int index = 0;
for (int val : spots) {
compress[val] = index++;
}
sort(events.begin(), events.end());
reverse(events.begin(), events.end());
for (pp vp : events) {
a = compress[vp.first.first];
b = compress[vp.first.second];
lefts[vp.second] = a;
rights[vp.second] = b;
int curval = query(b, 2*N-1);
curval++;
up(a, curval);
lens[vp.second] = curval;
lenlist[curval].push_back(vp.second);
}
set<int> active;
int cend = 0;
for (int i = N; i > K; i--) {
for (int v : lenlist[i]) active.insert(v);
}
vector<int> res;
for (int i = K; i > 0; i--) {
for (int v : lenlist[i]) active.insert(v);
if (active.size() == 0) {
cout << -1 << endl;
return 0;
}
while (true) {
int cur = *(active.begin());
active.erase(active.begin());
if (lefts[cur] >= cend) {
cend = rights[cur];
res.push_back(cur);
break;
}
}
}
sort(res.begin(), res.end());
for (int v : res) {
cout << v+1 << endl;
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
4940 KB |
Output is correct |
2 |
Correct |
4 ms |
5016 KB |
Output is correct |
3 |
Correct |
4 ms |
5024 KB |
Output is correct |
4 |
Correct |
349 ms |
32572 KB |
Output is correct |
5 |
Correct |
360 ms |
34596 KB |
Output is correct |
6 |
Correct |
351 ms |
34816 KB |
Output is correct |
7 |
Correct |
339 ms |
35192 KB |
Output is correct |
8 |
Correct |
353 ms |
34548 KB |
Output is correct |
9 |
Correct |
385 ms |
34664 KB |
Output is correct |
10 |
Correct |
349 ms |
34820 KB |
Output is correct |
11 |
Correct |
344 ms |
35236 KB |
Output is correct |
12 |
Correct |
313 ms |
32820 KB |
Output is correct |
13 |
Correct |
292 ms |
33036 KB |
Output is correct |
14 |
Correct |
306 ms |
33160 KB |
Output is correct |
15 |
Correct |
295 ms |
33576 KB |
Output is correct |
16 |
Correct |
224 ms |
31008 KB |
Output is correct |
17 |
Correct |
224 ms |
31596 KB |
Output is correct |
18 |
Correct |
228 ms |
31864 KB |
Output is correct |
19 |
Correct |
211 ms |
30624 KB |
Output is correct |
20 |
Correct |
234 ms |
31164 KB |
Output is correct |
21 |
Correct |
219 ms |
31620 KB |
Output is correct |
22 |
Correct |
215 ms |
30840 KB |
Output is correct |
23 |
Correct |
218 ms |
31216 KB |
Output is correct |
24 |
Correct |
222 ms |
31704 KB |
Output is correct |
25 |
Correct |
256 ms |
30888 KB |
Output is correct |
26 |
Correct |
254 ms |
31168 KB |
Output is correct |
27 |
Correct |
253 ms |
31628 KB |
Output is correct |
28 |
Correct |
196 ms |
33004 KB |
Output is correct |
29 |
Correct |
192 ms |
32116 KB |
Output is correct |
30 |
Correct |
185 ms |
30836 KB |
Output is correct |
31 |
Correct |
192 ms |
30680 KB |
Output is correct |
32 |
Correct |
194 ms |
30824 KB |
Output is correct |
33 |
Correct |
272 ms |
30564 KB |
Output is correct |
34 |
Correct |
264 ms |
34420 KB |
Output is correct |
35 |
Correct |
260 ms |
35048 KB |
Output is correct |
36 |
Correct |
248 ms |
35848 KB |
Output is correct |
37 |
Correct |
279 ms |
32376 KB |
Output is correct |
38 |
Correct |
280 ms |
32616 KB |
Output is correct |
39 |
Correct |
291 ms |
32724 KB |
Output is correct |
40 |
Correct |
287 ms |
33012 KB |
Output is correct |
41 |
Correct |
291 ms |
33036 KB |
Output is correct |
42 |
Correct |
187 ms |
31628 KB |
Output is correct |
43 |
Correct |
277 ms |
32608 KB |
Output is correct |
44 |
Correct |
289 ms |
32668 KB |
Output is correct |
45 |
Correct |
283 ms |
32660 KB |
Output is correct |
46 |
Correct |
265 ms |
32632 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
5032 KB |
Output is correct |
2 |
Correct |
4 ms |
5028 KB |
Output is correct |
3 |
Correct |
4 ms |
4940 KB |
Output is correct |
4 |
Correct |
5 ms |
4940 KB |
Output is correct |
5 |
Incorrect |
4 ms |
5028 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
5032 KB |
Output is correct |
2 |
Correct |
4 ms |
5028 KB |
Output is correct |
3 |
Correct |
4 ms |
4940 KB |
Output is correct |
4 |
Correct |
5 ms |
4940 KB |
Output is correct |
5 |
Incorrect |
4 ms |
5028 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
4940 KB |
Output is correct |
2 |
Correct |
4 ms |
5016 KB |
Output is correct |
3 |
Correct |
4 ms |
5024 KB |
Output is correct |
4 |
Correct |
349 ms |
32572 KB |
Output is correct |
5 |
Correct |
360 ms |
34596 KB |
Output is correct |
6 |
Correct |
351 ms |
34816 KB |
Output is correct |
7 |
Correct |
339 ms |
35192 KB |
Output is correct |
8 |
Correct |
353 ms |
34548 KB |
Output is correct |
9 |
Correct |
385 ms |
34664 KB |
Output is correct |
10 |
Correct |
349 ms |
34820 KB |
Output is correct |
11 |
Correct |
344 ms |
35236 KB |
Output is correct |
12 |
Correct |
313 ms |
32820 KB |
Output is correct |
13 |
Correct |
292 ms |
33036 KB |
Output is correct |
14 |
Correct |
306 ms |
33160 KB |
Output is correct |
15 |
Correct |
295 ms |
33576 KB |
Output is correct |
16 |
Correct |
224 ms |
31008 KB |
Output is correct |
17 |
Correct |
224 ms |
31596 KB |
Output is correct |
18 |
Correct |
228 ms |
31864 KB |
Output is correct |
19 |
Correct |
211 ms |
30624 KB |
Output is correct |
20 |
Correct |
234 ms |
31164 KB |
Output is correct |
21 |
Correct |
219 ms |
31620 KB |
Output is correct |
22 |
Correct |
215 ms |
30840 KB |
Output is correct |
23 |
Correct |
218 ms |
31216 KB |
Output is correct |
24 |
Correct |
222 ms |
31704 KB |
Output is correct |
25 |
Correct |
256 ms |
30888 KB |
Output is correct |
26 |
Correct |
254 ms |
31168 KB |
Output is correct |
27 |
Correct |
253 ms |
31628 KB |
Output is correct |
28 |
Correct |
196 ms |
33004 KB |
Output is correct |
29 |
Correct |
192 ms |
32116 KB |
Output is correct |
30 |
Correct |
185 ms |
30836 KB |
Output is correct |
31 |
Correct |
192 ms |
30680 KB |
Output is correct |
32 |
Correct |
194 ms |
30824 KB |
Output is correct |
33 |
Correct |
272 ms |
30564 KB |
Output is correct |
34 |
Correct |
264 ms |
34420 KB |
Output is correct |
35 |
Correct |
260 ms |
35048 KB |
Output is correct |
36 |
Correct |
248 ms |
35848 KB |
Output is correct |
37 |
Correct |
279 ms |
32376 KB |
Output is correct |
38 |
Correct |
280 ms |
32616 KB |
Output is correct |
39 |
Correct |
291 ms |
32724 KB |
Output is correct |
40 |
Correct |
287 ms |
33012 KB |
Output is correct |
41 |
Correct |
291 ms |
33036 KB |
Output is correct |
42 |
Correct |
187 ms |
31628 KB |
Output is correct |
43 |
Correct |
277 ms |
32608 KB |
Output is correct |
44 |
Correct |
289 ms |
32668 KB |
Output is correct |
45 |
Correct |
283 ms |
32660 KB |
Output is correct |
46 |
Correct |
265 ms |
32632 KB |
Output is correct |
47 |
Correct |
4 ms |
5032 KB |
Output is correct |
48 |
Correct |
4 ms |
5028 KB |
Output is correct |
49 |
Correct |
4 ms |
4940 KB |
Output is correct |
50 |
Correct |
5 ms |
4940 KB |
Output is correct |
51 |
Incorrect |
4 ms |
5028 KB |
Output isn't correct |
52 |
Halted |
0 ms |
0 KB |
- |