#include <bits/stdc++.h>
using namespace std;
int n,m,w[1000001],e[1000001],c[2000002],p[2000002],nxt[2000002],res,vis[2000002];
priority_queue <int> q;
int main(){
ios_base::sync_with_stdio(NULL);cin.tie(nullptr);
cin >> n >> m;
iota(nxt,nxt+2000001,1);
for (int i=1;i<=n;i++){
cin >> w[i] >> e[i];
p[w[i]]=p[e[i]]=i;
nxt[w[i]-1]=e[i];
nxt[e[i]-1]=w[i];
c[w[i]-1]=c[e[i]-1]=1;
}
vis[2000001]=1;
for (int i=0;i<=2000000;i++){
if (!vis[i]){
int s=0,x=i;
while (!vis[x]){
s+=c[x];
vis[x]=1;
x=nxt[x];
}
if (x!=i)
res=s;
else
q.push(s);
}
}
while (!q.empty()&&m){
res+=q.top()+2;
q.pop();
m--;
}
cout << res+m+m/2*2;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
11 ms |
23132 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
11 ms |
23132 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
11 ms |
23128 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
23088 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
12 ms |
23132 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
11 ms |
23024 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
12 ms |
23132 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
12 ms |
23128 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
11 ms |
23132 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
23132 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
14 ms |
23132 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
12 ms |
23288 KB |
Output is correct |
2 |
Correct |
16 ms |
23644 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
23128 KB |
Output is correct |
2 |
Correct |
13 ms |
23388 KB |
Output is correct |
3 |
Correct |
17 ms |
23384 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
23388 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
13 ms |
23388 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
35 ms |
29268 KB |
Output is correct |
2 |
Correct |
99 ms |
40432 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
69 ms |
34776 KB |
Output is correct |
2 |
Correct |
135 ms |
44500 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
210 ms |
49104 KB |
Output is correct |
2 |
Correct |
200 ms |
51660 KB |
Output is correct |
3 |
Correct |
197 ms |
56164 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
322 ms |
54112 KB |
Output is correct |
2 |
Correct |
261 ms |
55280 KB |
Output is correct |
3 |
Correct |
218 ms |
53840 KB |
Output is correct |
4 |
Correct |
234 ms |
54132 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
328 ms |
59052 KB |
Output is correct |
2 |
Correct |
301 ms |
58720 KB |
Output is correct |
3 |
Correct |
175 ms |
58312 KB |
Output is correct |
4 |
Correct |
241 ms |
59896 KB |
Output is correct |