Cod sursa(job #1723737)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 1 iulie 2016 14:33:29
Problema Barman Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<cstdio>
#include<algorithm>
#define MAXN 610
#define INF 1200000000
using namespace std;
int v[MAXN],order[MAXN],correct[MAXN];
int AbsoluteValue(int x){
    if(x<0)
        return -x;
    return x;
}
int main(){
    freopen("barman.in","r",stdin);
    freopen("barman.out","w",stdout);
    int n,i,j,k,answer=INF,sum;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&v[i]);
        order[i]=v[i];
    }
    sort(order+1,order+n+1);
    for(i=1;i<=n;i++){
        sum=0;
        order[n+1]=order[1];
        for(j=1;j<=n;j++){
            order[j]=order[j+1];
            if(order[j]==v[j])
                correct[j]=1;
            else
                correct[j]=0;
        }
        for(j=1;j<=n;j++)
            if(v[j]!=order[j])
                for(k=1;k<=n;k++)
                    if(correct[k]==0&&v[j]==order[k]){
                        correct[k]=1;
                        sum=sum+20+AbsoluteValue(j-k);
                    }
        if(sum<answer)
            answer=sum;
    }
    printf("%d",answer);
    return 0;
}