Cod sursa(job #1329725)

Utilizator ZenusTudor Costin Razvan Zenus Data 29 ianuarie 2015 19:59:51
Problema Barman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
#include <algorithm>
#include <climits>

using namespace std;

#define NMAX 607

int c[NMAX],v[NMAX],ma[NMAX];
int i,s,cu,cost,j,N;

int main()
{
freopen("barman.in","r",stdin);
freopen("barman.out","w",stdout);

scanf("%d",&N);

for (i=1;i<=N;++i)
{
    scanf("%d",&v[i]);
    c[i]=v[i];
}

sort(c+1,c+N+1);

cost=INT_MAX;
for (s=1;s<=N;++s)
{
    cu=0;

    for (i=1,c[N+1]=c[1];i<=N;++i)
    c[i]=c[i+1];

    for (i=1;i<=N;++i)
    ma[i]=(v[i]==c[i]);

    for (i=1;i<=N;++i)
    {
        if (v[i]==c[i]) continue;

        j=1;
        while ((ma[j] || c[j]!=v[i]) && j<=N) ++j;

        ma[j]=true;
        cu+=20+abs(i-j);
    }

    cost=min(cost,cu);
}

printf("%d\n",cost);

return 0;
}