Cod sursa(job #1134059)

Utilizator misinozzz zzz misino Data 5 martie 2014 22:34:11
Problema Barman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
#include<algorithm>
#include<cstring>
#define N 620
using namespace std;
ifstream f("barman.in");
ofstream g("barman.out");
int n,i,j,sol,x,k,cur,c[N],ok[N],a[N],b[N];
int main()
{
    f>>n;
    sol=0x3f3f3f3f;
    for(i=1;i<=n;++i)
    f>>a[i],b[i]=a[i];
    sort(b+1,b+n+1);
    for(k=1;k<=n;++k)
    {
        memset(c,0,sizeof(c));
        memset(ok,0,sizeof(ok));
        for(i=1;i<=n;++i)
        if(a[i]==b[i])
        ok[i]=1,c[i]=a[i];
        cur=0;
        for(i=1;i<=n;++i)
        if(!ok[i])
        {
            for(j=1;j<=n;++j)
            if(b[j]==a[i]&&!c[j])
            {
                c[j]=a[i];
                cur+=max(j-i,i-j)+20;
                break;
            }
        }
        sol=min(sol,cur);
        x=b[n];
        for(i=n;i;--i)
        b[i]=b[i-1];
        b[1]=x;
    }
    g<<sol<<'\n';
    return 0;
}