Cod sursa(job #2923443)

Utilizator bem.andreiIceman bem.andrei Data 13 septembrie 2022 20:16:32
Problema Barman Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;
ifstream r("barman.in");
ofstream w("barman.out");

int n, v[603], sp[603], sv[603];
bool cmp(const int &a, const int &b)
{
    return (v[a]<v[b])||(v[a]==v[b]&&a<b);
}

int main()
{
    r>>n;
    for(int i=0;i<n;i++)
    {
        r>>v[i];
        sv[i]=v[i];
        sp[i]=i;
    }
    sort(sv,sv+n);
    sort(sp,sp+n,cmp);
    int mn=1000000003;
    for(int i=0;i<n;i++)
    {
        int ans=0;
        for(int j=0;j<n;j++)
        {
            if(sp[(i+j)%n]-j>0){
                ans+=sp[(i+j)%n]-j;
            }
            else{
                ans-=sp[(i+j)%n]-j;
            }
            if(v[j]!=sv[(j+i)%n]){
                ans+=20;
            }
        }
        mn=min(mn,ans);
    }
    w<<mn;
    return 0;
}