#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1e6 + 5;
const int L = 2e6 + 1;
int W[MAX_N], E[MAX_N];
pair <int, int> nxt[L + 1];
bool visited[L + 1];
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int N, M;
cin >> N >> M;
for(int i = 0; i < L; i++) {
nxt[i] = make_pair(i + 1, 0);
}
for(int i = 1; i <= N; i++) {
cin >> W[i] >> E[i];
nxt[W[i]] = make_pair(E[i] + 1, 1);
nxt[E[i]] = make_pair(W[i] + 1, 1);
}
priority_queue <int> pq;
visited[L] = true;
int ans = 0;
for(int i = 0; i <= L; i++) {
if(visited[i] == true) {
continue;
}
int u = i, cnt = 0;
while(visited[u] == false) {
visited[u] = true;
cnt += nxt[u].second;
u = nxt[u].first;
}
if(i == 0) {
ans = cnt;
}
else {
pq.push(cnt);
}
}
while(M--) {
if(!pq.empty()) {
ans += pq.top() + 2;
pq.pop();
}
else {
pq.push(1);
ans++;
}
}
cout << ans;
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
18 ms |
17828 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
16 ms |
17876 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
16 ms |
17876 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
16 ms |
17876 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
18 ms |
17892 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
15 ms |
17884 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
20 ms |
17952 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
21 ms |
17876 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
19 ms |
17884 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
16 ms |
17876 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
16 ms |
17956 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
17 ms |
18000 KB |
Output is correct |
2 |
Correct |
21 ms |
17968 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
20 ms |
17940 KB |
Output is correct |
2 |
Correct |
19 ms |
18108 KB |
Output is correct |
3 |
Correct |
21 ms |
18080 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
22 ms |
18008 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
20 ms |
18136 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
42 ms |
19220 KB |
Output is correct |
2 |
Correct |
131 ms |
20836 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
88 ms |
20128 KB |
Output is correct |
2 |
Correct |
164 ms |
22136 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
222 ms |
24968 KB |
Output is correct |
2 |
Correct |
241 ms |
26068 KB |
Output is correct |
3 |
Correct |
250 ms |
28588 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
335 ms |
26920 KB |
Output is correct |
2 |
Correct |
304 ms |
27540 KB |
Output is correct |
3 |
Correct |
308 ms |
40012 KB |
Output is correct |
4 |
Correct |
288 ms |
40404 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
357 ms |
29960 KB |
Output is correct |
2 |
Correct |
359 ms |
44532 KB |
Output is correct |
3 |
Correct |
288 ms |
44368 KB |
Output is correct |
4 |
Correct |
315 ms |
44508 KB |
Output is correct |