Submission #301109

#TimeUsernameProblemLanguageResultExecution timeMemory
301109JPN20Ancient Books (IOI17_books)C++17
12 / 100
1 ms384 KiB
#include "books.h" #include <bits/stdc++.h> using namespace std; long long N; long long cnt[1 << 18]; bool used[1 << 18]; long long minimum_walk(vector<int> p, int s) { N = p.size(); for (int i = 0; i < N; i++) { if (used[i] == true || p[i] == i) continue; int cx = i; while (used[cx] == false) { int e1 = cx, e2 = p[cx]; if (e1 > e2) swap(e1, e2); cnt[e1] += 1; cnt[e2] -= 1; used[cx] = true; cx = p[cx]; } } for (int i = 1; i < N; i++) cnt[i] += cnt[i - 1]; long long sum = 0; for (int i = 0; i < N; i++) sum += cnt[i]; for (int i = 1; i < N; i++) { if (cnt[i - 1] == 0LL && cnt[i] >= 1LL) sum += 2LL * i; } return sum; }
#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...