Pagini recente » Cod sursa (job #1704165) | Cod sursa (job #2538995) | Cod sursa (job #1883029) | Cod sursa (job #2543920) | Cod sursa (job #1327504)
#include <cmath>
#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#define MAXN 606
using namespace std;
int a[MAXN];
int val[MAXN];
bool used[MAXN];
int N;
void rotate() {
int v1 = val[1];
for(int i = 1; i < N; ++i)
val[i] = val[i + 1];
val[N] = v1;
}
int main()
{
ifstream cin("barman.in");
ofstream cout("barman.out");
int fin = 0;
long long cost = 1.e9;
cin >> N;
for(int i = 1; i <= N; ++i) {
cin >> a[i];
val[i] = a[i];
}
sort(val + 1, val + N + 1);
for(int i = 1; i <= N; ++i) {
long long ans = 0;
for(int j = 1; j <= N; ++j)
used[j] = 0;
for(int j = 1; j <= N; ++j) {
if(val[j] == a[j]) {
used[j] = 1;
}
}
for(int j = 1; j <= N; ++j) {
if(val[j] == a[j]) {
continue;
}
else {
ans += 20;
for(int k = 1; k <= N; ++k) {
if(!used[k] && val[k] == a[j]) {
used[k] = 1;
ans += abs(k - j);
break;
}
}
}
}
if(ans < cost) {
cost = ans;
fin = i;
}
rotate();
}
cout << cost << '\n';
return 0;
}