Pagini recente » Borderou de evaluare (job #1639684) | Cod sursa (job #704234) | Cod sursa (job #3161951) | Cod sursa (job #241991) | Cod sursa (job #1511499)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("barman.in");
ofstream fout ("barman.out");
int n, sol = 2000000000, V[610], P[610], F[610];
int main()
{
fin >> n;
for (int i = 1; i <= n; i++)
{
fin >> V[i];
P[i] = V[i];
}
sort (P + 1, P + 1 + n);
for (int k = 1; k <= n; k++)
{
P[0] = P[1];
for (int i = 1; i < n; i++) P[i] = P[i + 1];
P[n] = P[0];
for (int i = 1; i <= n; i++)
{
if (V[i] == P[i]) F[i] = 1;
else F[i] = 0;
}
int cost = 0;
for (int i = 1, j; i <= n; i++)
{
if (P[i] == V[i]) continue;
for (j = 1; F[j] || V[i] != P[j]; j++);
F[j] = 1;
cost += 20 + abs(i - j);
}
sol = min (sol, cost);
}
fout << sol << '\n';
return 0;
}