Submission #566296

#TimeUsernameProblemLanguageResultExecution timeMemory
566296sofapudenAncient Books (IOI17_books)C++14
50 / 100
169 ms50136 KiB
#include "books.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; ll minimum_walk(vector<int> p, int s) { ll su = 0; int mx = 0; int n = p.size(); vector<int> vis(n,0); vector<int> cnt(n+1,0); ll ans = 0; int cn = 0; vector<vector<int>> gr(n+1); for(int i = 0; i < n; ++i){ if(!vis[i]){ cn++; while(!vis[i]){ ans+=abs(i-p[i]); vis[i] = cn; cnt[cn]++; i = p[i]; } } } int dif = 0; vector<int> cnt2(n+1,0); for(int i = 0; i < n; ++i){ if(!cnt2[vis[i]]++)dif++; if(cnt2[vis[i]] == cnt[vis[i]])dif--; if(!dif)ans+=2; else mx = i+1; } return ans-2*(n-mx); }

Compilation message (stderr)

books.cpp: In function 'll minimum_walk(std::vector<int>, int)':
books.cpp:9:5: warning: unused variable 'su' [-Wunused-variable]
    9 |  ll su = 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...