Pagini recente » Borderou de evaluare (job #3263102) | Cod sursa (job #1641405) | Borderou de evaluare (job #2912144) | Rating UBB-Andor-Botond-Istvan (WilagWeroWersenyzok) | Cod sursa (job #2998962)
#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;
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;
for(j=1;j<=n;j++)
{
if(vec[j]==vec2[i])
{
break;
}
}
int i1,j1;
if(i<j)
{
i1=i;j1=j;
}
else
{
j1=i;i1=j;
}
if(abs(j1-pos-i1)<abs(n-j1-pos+i1))
{
timp+=abs(j1-pos-i1);
}
else
{
timp+=abs(n-j1-pos+i1);
}
}
}
return timp;
}