제출 #999019

#제출 시각아이디문제언어결과실행 시간메모리
999019huutuanTeleporters (IOI08_teleporters)C++14
10 / 100
1063 ms29504 KiB
#include<bits/stdc++.h> using namespace std; const int N=2e6+10; int jump[N], cnt[N], nxt[N], add[N]; int n, m; int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); memset(jump, -1, sizeof jump); cin >> n >> m; for (int i=1; i<=n; ++i){ int u, v; cin >> u >> v; jump[u]=v; jump[v]=u; } nxt[N-1]=N; for (int i=N-2; i>=0; --i){ if (jump[i]!=-1) nxt[i]=i; else nxt[i]=nxt[i+1]; } int ans=0, pos=0; while (1){ if (pos==N) break; pos=nxt[pos]; if (pos==N) break; ++cnt[min(pos, jump[pos])]; pos=jump[pos]+1; ++ans; } for (int i=1; i<N; ++i) if (cnt[i]==1){ add[i]=3; for (int j=i+1; j<jump[i]; ++j) if (jump[j]!=-1 && jump[j]>j && cnt[j]==0 && jump[j]<jump[i]) ++add[i]; } sort(add, add+N, greater<int>()); for (int i=0; i<N; ++i) if (add[i] && m){ --m; ans+=add[i]; } while (m){ --m; ++ans; if (m) --m, ans+=3; } cout << ans << '\n'; return 0; }
#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...