Submission #813479

#TimeUsernameProblemLanguageResultExecution timeMemory
813479errayAncient Books (IOI17_books)C++17
50 / 100
100 ms18764 KiB
#include "books.h" //author: erray #include <bits/stdc++.h> using namespace std; #ifdef DEBUG #include "/home/ioi/codes/debug.h" #else #define debug(...) (void) 37 #endif long long minimum_walk(std::vector<int> p, int s) { int N = int(p.size()); assert(s == 0); long long res = 0; int l = 0, r = N - 1; while (l < N && p[l] == l) { ++l; } while (r >= 0 && p[r] == r) { --r; } if (l == N) { return 0; } res += 2 * l; vector<int> upd(N); for (int i = 0; i < N; ++i) { int L = p[i], R = i; if (L > R) { swap(L, R); } upd[L] += 1; upd[R] -= 1; res += (R - L); } for (int i = 0; i < N - 1; ++i) { upd[i + 1] += upd[i]; } for (int i = l; i < r - 1; ++i) { if (upd[i] == 0) { res += 2; } } return res; }
#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...