제출 #1076221

#제출 시각아이디문제언어결과실행 시간메모리
1076221mdn2002고대 책들 (IOI17_books)C++14
12 / 100
1 ms604 KiB
#include "books.h"
#include<bits/stdc++.h>
using namespace std;
long long minimum_walk(std::vector<int> p, int s) {
    assert(s == 0);

    long long ans = 0, n = p.size(), stt = -1;
    set<int> st;
    map<int, int> mp;
    for (int i = 0; i < n; i ++) {
        if (p[i] != i) {
            if (stt == -1) stt = i;
            ans += abs(i - p[i]);
            if (mp[i] == 0) {
                st.insert(p[i]);
                mp[p[i]] ++;
            }
            else {
                mp[i] --;
                st.erase(i);
            }
        }
        else if (st.size() >= 2) ans += 2;

    }
    if (stt != -1) ans += stt * 2;
    return ans;
}
/*
4 0
3 2 1 0
*/
#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...