Pagini recente » Cod sursa (job #746095) | Monitorul de evaluare | Cod sursa (job #202329) | Cod sursa (job #2376247) | Cod sursa (job #2006931)
/*
Sortez vectorul si generez permutarile circulare.
Elementele care sunt pe aceeasi poz raman unde sunt.
De asemenea se observa ca nu are rost sa port 2 pahare pe tava in acelasi timp.
Brute-Force;
*/
#include<fstream>
#include<queue>
#include<algorithm>
using namespace std;
ifstream fi("barman.in");
ofstream fo("barman.out");
int n,i,j,rez,A[1201],B[601],timp,k;
bool X[601];
int main()
{
fi>>n;
for(i=1; i<=n; i++)
{
fi>>A[i];
B[i]=A[i];
}
sort(A+1,A+n+1);
for(i=1; i<n; i++)
{
A[n+i]=A[i];
}
rez=1000000000;
for(i=1; i<=n; i++)
{
timp=0;
for(j=1; j<=n; j++)
{
if(A[i+j-1]!=B[j])
X[j]=true;
else
X[j]=false;
}
for(j=1; j<=n; j++)
{
if(A[i+j-1]==B[j])
continue;
else
{
for(k=1; k<=n; k++)
{
if(X[k]==true && A[i+k-1]==B[j])
{
X[k]=false;
timp=timp+abs(j-k)+20;
break;
}
}
}
}
rez=min(rez,timp);
}
fo<<rez<<"\n";
fi.close();
fo.close();
return 0;
}