Submission #894265

#TimeUsernameProblemLanguageResultExecution timeMemory
894265abcvuitunggioTeleporters (IOI08_teleporters)C++17
10 / 100
303 ms47808 KiB
#include <bits/stdc++.h> using namespace std; int n,m,w[1000001],e[1000001],cnt[1000001],p[2000001],nxt[2000001],res; int main(){ ios_base::sync_with_stdio(NULL);cin.tie(nullptr); cin >> n >> m; for (int i=1;i<=n;i++){ cin >> w[i] >> e[i]; p[w[i]]=p[e[i]]=i; nxt[w[i]]=e[i]; nxt[e[i]]=w[i]; } int u=1; while (u<=2000000){ if (p[u]){ cnt[p[u]]++; res++; u=nxt[u]; } u++; } priority_queue <int> q; stack <int> st; for (int i=1;i<=2000000;i++) if (p[i]){ if (nxt[i]<i){ int c=0; while (!st.empty()&&st.top()>nxt[i]){ c++; st.pop(); } if (cnt[p[i]]<2) q.push(c); } if (!cnt[p[i]]&&nxt[i]>i) st.push(i); } while (!q.empty()&&m){ res+=q.top()+3; 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...