제출 #798409

#제출 시각아이디문제언어결과실행 시간메모리
798409PixelCatAncient Books (IOI17_books)C++14
50 / 100
108 ms22684 KiB
#include "books.h" #ifdef NYAOWO #include "grader.cpp" #endif #include <bits/stdc++.h> #define For(i, a, b) for(int i = a; i <= b; i++) #define Forr(i, a, b) for(int i = a; i >= b; i--) #define F first #define S second #define all(x) x.begin(), x.end() #define sz(x) ((int)x.size()) #define eb emplace_back #define int LL using namespace std; using i32 = int32_t; using LL = long long; using pii = pair<int, int>; LL minimum_walk(vector<i32> p, i32 s) { assert(s >= 0); int n = sz(p); int ans = 0; int mx = 0; int oao = 0; vector<int> vis(n, 0); For(i, 0, n - 1) if(p[i] != i && !vis[i]) { int cur = i; int l = n + 1; int r = -1; do { l = min(l, cur); r = max(r, cur); ans += abs(p[cur] - cur); cur = p[cur]; vis[cur] = 1; } while(cur != i); assert(l == i); oao += max(0ll, l - mx); mx = max(mx, r); } ans += oao * 2; return ans; }
#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...