Pagini recente » Cod sursa (job #3133085) | Cod sursa (job #2766019) | Cod sursa (job #370052) | Cod sursa (job #3288161) | Cod sursa (job #2998947)
#include <iostream>
#include <fstream>
#include<math.h>
using namespace std;
ifstream in("barman.in");
ofstream out("barman.out");
int func(int pos);
int n;
int vec[100],vec2[100];
int main()
{
in>>n;
for(int i=1;i<=n;i++)
{
in>>vec[i];
vec2[i]=vec[i];
}
bool k=1;
while(k)
{
k=false;
for(int i=1;i<n;i++)
{
if(vec[i]>vec[i+1])
{
int aux = vec[i];
vec[i]=vec[i+1];
vec[i+1]=aux;
k=true;
}
}
}
for(int i=1;i<=n;i++)
{
//cout<<vec[i]<< " ";
}
//cout<<endl;
int mn=func(0);
//cout<<"f(0)="<<mn<<endl;
for(int i=1;i<n;i++)
{
int f=func(i);
//cout<<"f("<<i<<")="<<f<<endl;
if(f<mn)
{
mn=f;
}
}
out<<mn-1;
return 0;
}
int func(int pos)
{
int timp=0;
for(int i=1;i<=n;i++)
{
if(vec2[i]!=vec[i-pos])
{
timp+=20;
int j=pos+1;
while(true)
{
if(vec[j-pos]==vec2[i])
{
break;
}
j++;
}
int h=j;
if(abs(h-i)<abs(n-h+i))
{
timp+=abs(j+pos-i);
}
else
{
timp+=abs(n-h+i);
}
}
}
return timp;
}