Cod sursa(job #257019)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 12 februarie 2009 18:13:57
Problema Barman Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <algorithm>
#define INF 2147000000
using namespace std;
int n,i,j,k,a[602],x[602],mark[602],c,ax,cmin=INF;

int main(){
  freopen("barman.in","r",stdin);
  freopen("barman.out","w",stdout);
  scanf("%d",&n);
  for (i=1;i<=n;++i){scanf("%d",&a[i]);x[i]=a[i];}
  sort(a+1,a+n+1);
  for (k=0;k<n;++k){
    c=0;
    for (i=1;i<=n;++i)mark[i]=0;
    for (i=1;i<=n;++i)
      if (x[i]!=a[i]){
        for (j=1;j<=n;++j)if (a[j]==x[i]&&!mark[j]){mark[j]=1;break;}
        if (j>n)while (1);
        ax=abs(i-j);
        if (i<j){if (i+n-j<ax)ax=i+n-j;}
        else{if (j+n-i<ax)ax=j+n-i;}
        c+=20+ax;
      }
    if (c<cmin)cmin=c;
    for (i=1;i<=n;++i)x[i-1]=x[i];
    x[n]=x[0];
  }
  printf("%d\n",cmin);
}