Submission #619512

#TimeUsernameProblemLanguageResultExecution timeMemory
619512SlavicG고대 책들 (IOI17_books)C++17
50 / 100
131 ms22732 KiB
#include "books.h"
#include "bits/stdc++.h"
using namespace std;
using ll = long long;

ll minimum_walk(vector<int> p, int s) {
    int n = p.size();
    ll ans = 0;
    vector<ll> paiu(n + 1, 0);
    for(int i = 0; i < n; ++i) {
        ans += abs(i - p[i]);
        int l = min(i, p[i]);
        int r = max(i, p[i]);
        if(l != r) {
            paiu[l]++;
            paiu[r]--;
        }
    }
    ll bruh = 0;
    for(int i = 0; i < n - 1; ++i) {
        if(i) paiu[i] += paiu[i - 1];
        if(!paiu[i]) {
            bruh += 2;
        } else {
            ans += bruh;
            bruh = 0;
        }
    }
    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...