#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define mod 1000000007
int n,m,ans;
int p[2000005],v[2000005];
bool vis[2000005];
map <int,int> idx;
vector <int> telp;
vector <int> qu;
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
memset(v,-1,sizeof v);
cin>>n>>m;
for(int i=0;i<n;i++){
int a,b;
cin>>a>>b;
telp.push_back(a);
telp.push_back(b);
p[a]=b;
p[b]=a;
}
sort(telp.begin(),telp.end());
for(int j=0;j<telp.size();j++) idx[telp[j]]=j+1;
v[0]=idx[p[telp[0]]];
for(int j=1;j<telp.size();j++){
v[j]=idx[p[telp[j]]];
}
for(int i=0;i<=n*2+1;i++){
if(vis[i]==0){
int bg=i,cnt=1;
while(true){
vis[bg]=1;
if(v[bg]==-1) {ans+=cnt-1;break;}
if(vis[v[bg]]==1){ qu.push_back(cnt);break;}
cnt++;
bg=v[bg];
}
}
}
sort(qu.begin(),qu.end());
for(int i=qu.size()-1;i>=max(0,(int)qu.size()-m);i--){
ans+=qu[i]+2;
}
if(qu.size()<m){
m-=qu.size();
ans+=(m/2)*4;
if(m%2==1) ans++;
}
cout<<ans<<endl;
return 0;
}
//g++ -std=c++17 template.cpp -o executable.exe
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |