Cod sursa(job #1225257)

Utilizator misinozzz zzz misino Data 2 septembrie 2014 12:37:45
Problema Barman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<fstream>
#include<algorithm>

#define N 605

using namespace std;

ifstream f("barman.in");
ofstream g("barman.out");

int n,sol,i,j,k,suma,x,a[N],v[N],ok[N];

int main()
{
    f >> n;

    sol = 0x3f3f3f3f;

    for(i = 1; i <= n; ++i)
        f >> v[i],a[i] = v[i];

    sort(v + 1, v + n + 1);

    for(i = 1; i <= n; ++i)
    {
        suma = 0;

        for(j = 1; j <= n; ++j)
            if(v[j] == a[j])
                ok[j] = 1;
            else
                ok[j] = 0;

        for(j = 1; j <= n; ++j)
            if(a[j] != v[j])
                for(k = 1; k <= n; ++k)
                    if(!ok[k] && a[j] == v[k])
                    {
                        ok[k] = 1;
                        suma += 20 + abs(j - k);
                        break;
                    }
        sol = min (sol, suma);

        x = v[1];
        for(j = 1; j < n; ++j)
            v[j] = v[j + 1];
        v[n] = x;
    }

    g << sol << '\n';

    return 0;
}