Cod sursa(job #2725056)

Utilizator Cojocaru_Andrei_CristianCojocaru Andrei Cristian Cojocaru_Andrei_Cristian Data 18 martie 2021 12:55:25
Problema Barman Scor 100
Compilator cpp-64 Status done
Runda simularesimulare Marime 1.24 kb
#include <bits/stdc++.h>

using namespace std;

int v[605],cpv[605];
bool ok[605];

int myabs(int b)
{
    if(b<0)
    {
        b=-b;
    }
    return b;
}

int main()
{
    ifstream cin("barman.in");
    ofstream cout("barman.out");
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
        cpv[i]=v[i];
    }
    sort(v+1,v+n+1);
    int temp,sol=1e9;
    for(int i=1;i<=n;i++)
    {
        temp=v[1];
        for(int j=1;j<n;j++)
        {
            v[j]=v[j+1];
        }
        v[n]=temp;
        memset(ok,0,sizeof(ok));
        for(int j=1;j<=n;j++)
        {
            if(cpv[j]==v[j])
            {
                 ok[j]=1;
            }
        }
        int cnt=0;
        for(int j=1;j<=n;j++)
        {
            if(v[j]!=cpv[j])
            {
                int last=0;
                for(int k=1;k<=n;k++)
                {
                    last=k;
                    if(ok[k]==0&&cpv[k]==v[j])
                    {
                        break;
                    }
                }
                ok[last]=1;
                cnt+=20+myabs(j-last);
            }
        }
        sol=min(sol,cnt);
    }
    cout<<sol;
    return 0;
}