답안 #937321

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
937321 2024-03-03T20:33:18 Z snpmrnhlol 고대 책들 (IOI17_books) C++17
0 / 100
1 ms 348 KB
#include "books.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e6;
const ll inf = 1e18;
ll ps[N + 1];
long long minimum_walk(std::vector<int> p, int s) {
    int n = p.size();
    ll ans = 0;
    ll mx = -inf;
    ll mn = inf;
    ll mx2 = -inf;
    ll mn2 = inf;
    bool ok = 0;
    for(ll i = 0;i < n;i++){
        ans+=abs(i - p[i]);
        if(i != p[i]){
            ok = 1;
            if(i < p[i]){
                ps[p[i]]--;
                ps[i]++;
            }
            if(i <= s){
                mx = max(mx,i);
            }
            if(i >= s){
                mn = min(mn,i);
            }
            mx2 = max(mx2,i);
            mn2 = min(mn2,i);
        }
    }
    if(ok == 0)return ans;
    ll sum = 0;
    for(int i = mn2;i < mx2;i++){
        sum+=ps[i];
        //cout<<ps[i]<<' ';
        if(sum == 0)ans+=2;
    }
    //cout<<ans<<' '<<mx - s<<' '<<s - mn<<'\n';
    if(mx == -inf)mx = inf;
    if(mn == inf)mn = -inf;
    ans+=2*min(mx - s,s - mn);
	return ans;
}
/**
4 0
3 2 1 0
**/
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB 3rd lines differ - on the 1st token, expected: '6', found: '2'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB 3rd lines differ - on the 1st token, expected: '6', found: '2'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB 3rd lines differ - on the 1st token, expected: '6', found: '2'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB 3rd lines differ - on the 1st token, expected: '3304', found: '2744'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB 3rd lines differ - on the 1st token, expected: '6', found: '2'
2 Halted 0 ms 0 KB -