#include <bits/stdc++.h>
using namespace std;
//#define int long long
const int N=2e6+5,MOD=998244353;
#define pb push_back
#define endl '\n'
vector<int> adj[N];
int sz=0;
vector<bool> vis(N);
bool flag=0;
void dfs(int node){
if(vis[node]){
flag=1;
return;
}
sz++;
vis[node]=1;
for(auto i:adj[node])dfs(i);
}
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n,m; cin>>n>>m;
pair<int,int> p[n];
vector<pair<int,int>> vec;
for(int i=0;i<n;i++){
cin>>p[i].first>>p[i].second;
vec.pb({p[i].first,p[i].second}); vec.pb({p[i].second,p[i].first});
}
vec.pb({2e18,2e18});
sort(vec.begin(),vec.end());
int right=0;
for(int i=0;i<vec.size()-1;i++){
int y=vec[i].second;
// while(vec[right].second>=)
int l=0,r=vec.size()-1;
while(l<r){
int mid=(l+r)/2;
if(vec[mid].first>y)r=mid;
else l=mid+1;
}
adj[i].pb(l);
}
int ans=0;
vector<int> nigbig;
for(int i=0;i<vec.size()-1;i++){
if(vis[i])continue;
flag=0;
sz=0;
dfs(i);
//cout<<i<<' '<<flag<<' '<<sz<<endl;
if(flag)nigbig.pb(sz);
else ans=sz-1;
}
// cout<<ans<<' '<<sz<<endl;
sort(nigbig.begin(),nigbig.end());
for(int i=nigbig.size()-1;i>=0 && m>0;i--){
ans+=nigbig[i]+2;
m--;
}
// cout<<ans<<endl;
ans+=m/2*4;
if(m%2)ans++;
cout<<ans;
}
# | 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... |