Submission #576278

#TimeUsernameProblemLanguageResultExecution timeMemory
576278keta_tsimakuridzeTeleporters (IOI08_teleporters)C++14
100 / 100
908 ms65536 KiB
#include<bits/stdc++.h> using namespace std; //#define int long long #define pii pair<int,int> #define f first #define s second #define endl "\n" const int N = 2e6 + 5, M = 2e6 + 1, mod = 1e9 + 7; //! int t; bool vis[N]; pair<int,bool> to[N]; main() { // ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0); int n, m; cin >> n >> m; for(int i = 0; i <= M - 1; i++) to[i] = {i + 1, 0}; for(int i = 1; i <= n; i++) { int l, r; cin >> l >> r; to[l - 1] = {r, 1}; to[r - 1] = {l, 1}; } multiset<int> s; int init = 0; for(int i = 0; i <= M; i++) { if(!vis[i]) { int cn = 0, x = i; while(!vis[x]) { cn += to[x].s; vis[x] = 1; x = to[x].f; } if(!i) init = cn; else s.insert(cn); } } while(m--) { if(s.size()) init += *--s.end() + 2, s.erase(s.find(*--s.end())); else { init++; s.insert(1); } } cout << init; }

Compilation message (stderr)

teleporters.cpp:12:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   12 | main() {
      | ^~~~
#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...