Submission #318524

#TimeUsernameProblemLanguageResultExecution timeMemory
318524Lemur95Ancient Books (IOI17_books)C++17
50 / 100
154 ms19172 KiB
#include <bits/stdc++.h> #include "books.h" #pragma GCC optimize("Ofast") #define x first #define y second #define ld long double #define ll long long using namespace std; int n, s, x; ll minimum_walk(vector <int> p, int s) { ll ans = 0; int n = p.size(), r = -1; vector <bool> viz(n + 5); vector <int> f(n + 5); fill(f.begin(), f.end(), 0); for(int i = 0; i < n; i++) { ans += abs(i - p[i]); f[min(i, p[i])]++; f[max(i, p[i])]--; } int cnt = 0; if(!f[0]) cnt++; for(int i = 1; i < n - 1; i++) { f[i] += f[i - 1]; if(!f[i]) cnt++; else ans += 2 * cnt, cnt = 0; } return ans; } /*int main() { ios_base :: sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> s; vector <int> p; for(int i = 1; i <= n; i++) cin >> x, p.push_back(x); cout << minimum_walk(p, s); return 0; }*/

Compilation message (stderr)

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:15:21: warning: unused variable 'r' [-Wunused-variable]
   15 |   int n = p.size(), r = -1;
      |                     ^
#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...