Pagini recente » Cod sursa (job #194512) | Cod sursa (job #3339) | Cod sursa (job #2915712)
#include <fstream>
#include <algorithm>
#include <string.h>
using namespace std;
const int MAX_N = 6 * 1e2;
int a[2 * MAX_N + 1], v[2 * MAX_N + 1];
bool ok[MAX_N + 1];
int n;
int main() {
ifstream fin("barman.in");
ofstream fout("barman.out");
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> a[i];
v[i] = a[i];
}
sort(v + 1, v + n + 1);
for (int i = 1; i <= n; i++) {
v[n + i] = v[i];
}
int answer = (1 << 30);
for (int i = 1; i <= n; i++) {
memset(ok, 0, sizeof(ok));
for (int j = 1; j <= n; j++) {
if (a[j] == v[i + j - 1]) {
ok[j] = true;
}
}
int cost = 0;
for (int j = 1; j <= n; j++) {
if (ok[j] == false) {
for (int k = 1; k <= n; k++) {
if (ok[k] == false && a[j] == v[i + k - 1]) {
ok[k] = true;
ok[j] = true;
cost += 20;
cost += abs(k - j);
break;
}
}
}
}
answer = min(answer, 2 * cost);
}
fout << answer;
return 0;
}