Cod sursa(job #1517132)

Utilizator VictoriaNevTascau Victoria VictoriaNev Data 3 noiembrie 2015 21:34:21
Problema Barman Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
const int NMAX=601;
int v[NMAX], s[NMAX], n, i, j, k, sum, minim=1.e9;
bool vis[NMAX];
void rotate()
{
    int aux=s[1];
    for(int i=1; i<n; i++)
        s[i]=s[i+1];
    s[n]=aux;
}
int main()
{
    ifstream in("barman.in");
    ofstream out("barman.out");
    in>>n;
    for(i=1; i<=n; i++)
    {
        in>>v[i];
        s[i]=v[i];
    }
    sort(s+1, s+n+1);
    for(i=1; i<=n; i++)
    {
        sum=0;
        for(j=1; j<=n; j++)
            vis[j]=0;
        for(j=1; j<=n; j++)
            if(v[j]==s[j])
            {
                vis[j]=1;
                continue;
            }
            else
            {
                sum+=20;
                for(k=1; k<=n; k++)
                    if(!vis[k]&&v[k]==s[j])
                    {
                        vis[k]=1;
                        sum+=abs(k-j);
                        break;
                    }

            }
        if(sum<minim)
            minim=sum;
        rotate();
    }
    out<<minim<<'\n';
    return 0;
}