#include<bits/stdc++.h>
using namespace std;
const int N=2000009;
int a,b,c,d,e,i,j,ii,jj,zx,xc,pi,fx[N],f[N],pas,bo[N],zm[N],li;
pair <int, int> P[N],p[N];
int l[N];
int main(){
ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>a>>b;
for(i=1; i<=a; i++){
cin>>P[i].first>>P[i].second;
pi++;p[pi].first=P[i].first;p[pi].second=P[i].second;
pi++;p[pi].first=P[i].second;p[pi].second=P[i].first;
}
sort(p+1,p+pi+1);
zx=1;
fx[0]=zx;
for(i=1; i<=pi; i++){
zx++;
fx[p[i].first]=zx;
}
for(i=1; i<=pi; i++){
f[i]=fx[p[i].second];
}
pas=0;
for(i=1; i<=pi; i++){
if(bo[i]!=0) continue;
c=i;
while(bo[c]==0&&c!=0){
bo[c]=1;c=f[c];zm[i]++;
}
if(i==1){
pas=zm[i]-1;
}else{
li++;
l[li]=zm[i];
}
}
sort(l+1,l+li+1);
while(b>0&&li>0){
pas+=l[li]+2;b--;li--;
}
if(b%2==0){
pas+=b*2;
}else{
pas+=b*2-1;
}
cout<<pas;
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
460 KB |
Output is correct |
2 |
Correct |
5 ms |
972 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
588 KB |
Output is correct |
2 |
Correct |
6 ms |
1484 KB |
Output is correct |
3 |
Correct |
15 ms |
1996 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
7 ms |
1100 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
9 ms |
1228 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
64 ms |
8380 KB |
Output is correct |
2 |
Correct |
158 ms |
21316 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
117 ms |
15472 KB |
Output is correct |
2 |
Correct |
236 ms |
29584 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
314 ms |
39112 KB |
Output is correct |
2 |
Correct |
381 ms |
45240 KB |
Output is correct |
3 |
Correct |
405 ms |
48432 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
472 ms |
50792 KB |
Output is correct |
2 |
Correct |
518 ms |
65536 KB |
Output is correct |
3 |
Correct |
453 ms |
61148 KB |
Output is correct |
4 |
Correct |
463 ms |
61724 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
524 ms |
64052 KB |
Output is correct |
2 |
Correct |
519 ms |
64716 KB |
Output is correct |
3 |
Correct |
392 ms |
59076 KB |
Output is correct |
4 |
Correct |
477 ms |
65536 KB |
Output is correct |