Submission #895085

#TimeUsernameProblemLanguageResultExecution timeMemory
895085abcvuitunggioTeleporters (IOI08_teleporters)C++17
100 / 100
266 ms29384 KiB
#include <bits/stdc++.h> using namespace std; const int mx=2000001; int n,m,w,e,c[mx+1],nxt[mx+1],res,vis[mx+1]; priority_queue <int> q; int main(){ ios_base::sync_with_stdio(NULL);cin.tie(nullptr); cin >> n >> m; iota(nxt,nxt+mx,1); for (int i=1;i<=n;i++){ cin >> w >> e; nxt[w-1]=e; nxt[e-1]=w; c[w-1]=c[e-1]=1; } for (int i=0;i<mx;i++){ if (!vis[i]){ int s=0; while (!vis[i]){ s+=c[i]; vis[i]=1; i=nxt[i]; } if (i) q.push(s); else res=s; } } while (!q.empty()&&m){ res+=q.top()+2; q.pop(); m--; } cout << res+m+m/2*2; }
#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...