Submission #301095

#TimeUsernameProblemLanguageResultExecution timeMemory
301095JPN20Ancient Books (IOI17_books)C++17
0 / 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; int cl = cx, cr = cx; while (used[cx] == false) { used[cx] = true; cl = min(cl, cx); cr = max(cr, cx); cx = p[cx]; } cnt[cl] += 1; cnt[cr] -= 1; } for (int i = 1; i < N; i++) cnt[i] += cnt[i - 1]; long long sum = 0; for (int i = 0; i < N; i++) sum += 2LL * 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...