Pagini recente » Cod sursa (job #3287569) | Cod sursa (job #2447664) | Cod sursa (job #1038464) | Cod sursa (job #2531698) | Cod sursa (job #1277330)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("barman.in");
ofstream g ("barman.out");
const int NMAX = 600 + 1;
const int INF = 1 << 30;
int n, cost = 10;
int v[NMAX], sorted[NMAX];
bool same[NMAX];
void citeste() {
f >> n;
for (int i = 1; i <= n; i++) {
f >> v[i];
sorted[i] = v[i];
}
}
void rezolva() {
int sol = INF, aux;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++)
same[j] = (v[j] == sorted[j]);
aux = 0;
for (int j = 1; j <= n; j++) {
if (v[j] != sorted[j]) {
for (int k = 1; k <= n; k++)
if(v[j] == sorted[k] && same[k] == false) {
aux += cost * 2 + abs(j - k);
same[k] = true;
break;
}
}
}
if (sol > aux) sol = aux;
aux = sorted[1];
for (int j = 1; j < n; j++) sorted[j] = sorted[j + 1];
sorted[n] = aux;
}
g << sol;
}
int main() {
citeste();
sort (sorted + 1, sorted + n + 1);
rezolva();
}