Submission #724826

#TimeUsernameProblemLanguageResultExecution timeMemory
724826khanhdz06Teleporters (IOI08_teleporters)C++17
100 / 100
383 ms33844 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n, m, tel[2000002]; bool vis[2000002]; priority_queue<ll> pq; int main(){ ios_base::sync_with_stdio(false), cin.tie(nullptr); for(int i=0; i<2000002; i++){ tel[i] = i+1; } cin >> n >> m; for(int i=1; i<=n; i++){ ll l, r; cin >> l >> r; tel[l-1] = r; tel[r-1] = l; } ll len = -1; vis[2000002] = 1; for(int i=0; i<2000002; i++){ if(!vis[i]){ ll pos = i, ret = 0; while(!vis[pos]){ vis[pos] = 1; if(tel[pos] != pos+1) ret++; pos = tel[pos]; } if(len==-1) len = ret; else pq.push(ret); } } while(!pq.empty() && m--){ len += pq.top()+2; pq.pop(); } len += (m+1)/2 + (m/2)*3; cout << len; }

Compilation message (stderr)

teleporters.cpp: In function 'int main()':
teleporters.cpp:23:16: warning: array subscript 2000002 is above array bounds of 'bool [2000002]' [-Warray-bounds]
   23 |     vis[2000002] = 1;
      |     ~~~~~~~~~~~^
teleporters.cpp:8:6: note: while referencing 'vis'
    8 | bool vis[2000002];
      |      ^~~
#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...