Submission #968266

#TimeUsernameProblemLanguageResultExecution timeMemory
968266nguyentunglamAncient Books (IOI17_books)C++17
0 / 100
2098 ms600 KiB
#include "books.h" #include<bits/stdc++.h> using namespace std; long long minimum_walk(std::vector<int> p, int s) { int n = p.size(); vector<int> order(n); for(int i = 0; i < n; i++) order[i] = i; long long ans = 0; for(int i = 0; i < n; i++) ans += abs(i - p[i]); long long tmp = 1e18; do { int last = 0; long long cost = 0; for(int i = 0; i < n; i++) if (order[i] != p[order[i]]) { cost += abs(last - order[i]); last = p[order[i]]; } cost += last; tmp = min(tmp, cost); } while (next_permutation(order.begin(), order.end())); return ans + tmp; } #ifdef ngu int main() { freopen ("task.inp", "r", stdin); freopen ("task.out", "w", stdout); int n, s; assert(2 == scanf("%d %d", &n, &s)); vector<int> p((unsigned) n); for(int i = 0; i < n; i++) assert(1 == scanf("%d", &p[(unsigned) i])); long long res = minimum_walk(p, s); printf("%lld\n", res); return 0; } #endif // ngu
#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...