Cod sursa(job #1744402)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 19 august 2016 18:36:46
Problema Barman Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>
using namespace std;

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

const int DIM = 6e2 + 5;
const int INF = 0x3f3f3f3f;

int N, X, V[DIM], P[DIM], minim = INF, ans;
vector<int> W(1);

int main( int argc, const char *argv[] ) {

    in >> N;
    for( int i = 1; i <= N; i ++ ) {
        in >> X; V[i] = X;
        W.push_back( X );
    }

    sort( W.begin() + 1, W.end() );

    for( int k = 1; k <= N; k ++ ) {
        ans = 0;

        for( int i = 1; i <= N; i ++ )
            P[i] = ( W[i] == V[i] );

        for( int i = 1; i <= N; i ++ ) {
            if( V[i] == W[i] )
                continue;

            for( int j = 1; j <= N; j ++ ) {
                if( P[j] == 1 || W[j] != V[i] )
                    continue;

                P[j] = 1;
                ans += 20 + abs(i - j);
            }
        }

        minim = min( minim, ans ); X = W[1];
        W.erase( W.begin() + 1 ); W.push_back(X);
    }

    out << minim << endl;
    return 0;
}