#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;
void solve(int i,int cnt){
vis[i]=1;
if(v[i]==-1) {ans+=cnt-1;return;}
if(vis[v[i]]==1) qu.push_back(cnt);
else solve(v[i],cnt+1);
return;
}
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){
solve(i,1);
}
}
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... |