Pagini recente » Cod sursa (job #2885864) | Cod sursa (job #955092) | Cod sursa (job #1956768) | Istoria paginii utilizator/legion | Cod sursa (job #1332279)
#include <stdio.h>
#include <algorithm>
int a[601],b[601],c[601],n,vis[601];
int abs(int a)
{
if(a<0) return -a;
return a;
}
int main()
{
freopen ("barman.in","r",stdin);
freopen ("barman.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
c[i]=a[i];
}
std::sort(b+1,b+n+1);
int v,maxim=900000000,cost,temp;
for(int x=1;x<=n;x++)
{
cost=0;
for(int i=1;i<=n;i++)
{
vis[i]=0;
if(c[i]==b[i]) vis[i]=1;
}
for(int i=1;i<=n;i++)
{
if(c[i]!=b[i])
{
for(int j=1;j<=n;j++)
{
if(vis[j]==0&&c[j]==b[i])
{
cost+=40+2*(abs(i-j));
temp=c[i];
c[i]=c[j];
c[j]=temp;
break;
}
}
}
}
v=b[1];
if(maxim>cost) maxim=cost;
for(int i=1;i<=n;i++)
{
c[i]=a[i];
b[i]=b[i+1];
}
b[n]=v;
//for(int i=1;i<=n;i++) printf("%d ",b[i]);
//printf("\n");
}
printf("%d\n",maxim);
}