제출 #1222437

#제출 시각아이디문제언어결과실행 시간메모리
1222437ereringTeleporters (IOI08_teleporters)C++20
55 / 100
545 ms39912 KiB
#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' int adj[N]; int sz=0; vector<bool> vis(N); bool flag=0; 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; 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]=(l); } int ans=0; vector<int> nigbig; for(int i=0;i<vec.size()-1;i++){ if(vis[i])continue; flag=0; sz=0; queue<int> q; q.push(i); while(!q.empty()){ int x=q.front(); q.pop(); if(vis[x]){ flag=1; continue; } sz++; vis[x]=1; q.push(adj[x]); } 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...