제출 #5886

#제출 시각아이디문제언어결과실행 시간메모리
5886baneling100전봇대 (KOI13_pole)C++98
52 / 100
28 ms2260 KiB
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>

using namespace std;

pair <int,int> y[100000];
int N, x[100000], Hab;
long long Ans;

void input(void)
{
    int i;

    scanf("%d",&N);
    for(i=0 ; i<N ; i++)
    {
        scanf("%d",&x[i]);
        if(i)
            y[i]=make_pair(x[i]/i,i);
    }
    Hab=N*(N-1)/2;
    Hab/=2;
    sort(y+1,y+N);
}

void process(void)
{
    int i, s=0, v;
    long long temp=0;

    for(i=1 ; i<N ; i++)
    {
        s+=y[i].second;
        if(Hab<=s)
        {
            v=i;
            break;
        }
    }
    for(i=1 ; i<N ; i++)
    {
        Ans+=abs((long long)i*y[v].first-x[i]);
        temp+=abs((long long)i*(y[v].first+1)-x[i]);
    }
    if(Ans>temp)
        Ans=temp;
}

void output(void)
{
    printf("%lld",Ans);
}

int main(void)
{
    input();
    process();
    output();

    return 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...