제출 #895072

#제출 시각아이디문제언어결과실행 시간메모리
895072abcvuitunggioTeleporters (IOI08_teleporters)C++17
100 / 100
279 ms29644 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; } vis[mx]=1; for (int i=0;i<mx;i++){ if (!vis[i]){ int s=0,x=i; while (!vis[x]){ s+=c[x]; vis[x]=1; x=nxt[x]; } if (x!=i) res=s; else q.push(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...