Submission #963876

#TimeUsernameProblemLanguageResultExecution timeMemory
963876fzyzzz_zTeleporters (IOI08_teleporters)C++17
100 / 100
467 ms55292 KiB
#include<bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0; i<n; i++) #define all(x) x.begin(),x.end() using ll=long long; const ll INF=(1LL<<60)-1; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N,M; cin>>N>>M; vector<pair<int,int>> pos(N*2); rep(i,N){ int W,E; cin>>W>>E; pos[i*2]={W,i}; pos[i*2+1]={E,i}; } sort(all(pos)); vector<pair<int,int>> tel(N,{-1,-1}); rep(i,N*2){ if(tel[pos[i].second].first==-1){ tel[pos[i].second].first=i; } else{ tel[pos[i].second].second=i; } } vector<bool> vis(N*2,0); int ans=0; vector<int> more; rep(i,N*2){ if(vis[i])continue; int now=i; int score=0; while(!vis[now]){ vis[now]=1; if(tel[pos[now].second].first==now){ now=tel[pos[now].second].second; } else{ now=tel[pos[now].second].first; } score++; now++; if(now==N*2)break; } if(i==0)ans=score; else more.emplace_back(score); } sort(more.rbegin(),more.rend()); rep(i,M){ more.emplace_back(-1); more.emplace_back(1); ans+=more[i]; ans+=2; } cout<<ans<<endl; }
#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...