Submission #724553

#TimeUsernameProblemLanguageResultExecution timeMemory
724553khanhdz06Teleporters (IOI08_teleporters)C++17
100 / 100
358 ms40800 KiB
#include <iostream> #include <vector> #include <queue> #define ep emplace #define eb emplace_back #define ff first #define ss second using namespace std; typedef long long ll; typedef pair<ll,ll> pl; const ll maxn=2e6+5; const ll mod= 1e9+7 ; const ll base=3e18 ; ll n, m, tel[maxn]; bool vis[maxn]; priority_queue<ll> pq; int main() { ios::sync_with_stdio(false); cin.tie(0); if (fopen("cheetos.in","r")) { freopen("cheetos.in","r",stdin); freopen("cheetos.out","w",stdout); } for (ll i=0;i<maxn;i++) { tel[i]=i+1; } cin>> n>> m; for (ll i=1;i<=n;i++) { ll l, r; cin>> l>> r; tel[l-1]=r; tel[r-1]=l; } ll len=-1; vis[maxn]=1; for (ll i=0;i<maxn;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.ep(ret); } } while (!pq.empty()&&m) { len+=pq.top()+2; pq.pop(); m--; } len+=(m+1)/2; len+=(m/2)*3; cout <<len; }

Compilation message (stderr)

teleporters.cpp: In function 'int main()':
teleporters.cpp:26:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   26 |         freopen("cheetos.in","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
teleporters.cpp:27:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   27 |         freopen("cheetos.out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
teleporters.cpp:42:13: warning: array subscript 2000005 is above array bounds of 'bool [2000005]' [-Warray-bounds]
   42 |     vis[maxn]=1;
      |     ~~~~~~~~^
teleporters.cpp:16:6: note: while referencing 'vis'
   16 | bool vis[maxn];
      |      ^~~
#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...