Cod sursa(job #1327124)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 26 ianuarie 2015 13:25:51
Problema Barman Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.36 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int nr[605],v[605],po[605];
bool be[605];
int main()
{
    freopen("barman.in","r",stdin);
    freopen("barman.out","w",stdout);
    int n,i,j,q,sc,cu;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
    scanf("%d",&v[i]);
    nr[i]=v[i];
    }
    sort(nr+1,nr+n+1);
    sc=128000000;
    for(q=0;q<=n;q++)
    {
        cu=0;
        for(i=1;i<=n;i++)
        if(v[i]==nr[i])
        be[i]=1;
        else
        {
        be[i]=0;
        cu=cu+20;
        }
        for(i=1;i<=n;i++)
        {
            for(j=i-1;j>=1;j--)
            if(v[i]==nr[j] && be[j]==0)
            {
                be[j]=1;
                cu=cu+(i-j);
                break;
            }
            if(j==0)
            {
             for(j=i;j<=n;j++)
            if(v[i]==nr[j] && be[j]==0)
            {
                be[j]=1;
                cu=cu+(j-i);
                break;
            }
            }
        }
        if(cu<sc)
        sc=cu;
        nr[0]=nr[n];
        for(j=n;j>=1;j--)
        nr[j]=nr[j-1];
      /*  printf("%d\n",sc);
        for(j=1;j<=n;j++)
        printf("%d ",nr[j]);
        printf("\n");
          for(j=1;j<=n;j++)
        printf("%d ",v[j]);
        printf("\n");
        printf("\n");*/
    }
    printf("%d\n",sc);
    return 0;
}