Pagini recente » Cod sursa (job #1822548) | Cod sursa (job #1681121) | Cod sursa (job #467537) | Cod sursa (job #507630) | Cod sursa (job #2682174)
#include <bits/stdc++.h>
#define ABS(x) ((x) >= 0 ? (x) : -(x))
#define INF 0x3f3f3f3f
using namespace std;
ifstream fin("barman.in");
ofstream fout("barman.out");
void min_self(int &a, int b) {
a = min(a, b);
}
int main() {
int N;
fin >> N;
vector<int> v(N << 1 | 1), a(N + 1);
for(int i = 1; i <= N; ++i) {
fin >> a[i];
v[i] = a[i];
}
sort(v.begin() + 1, v.begin() + N + 1);
for(int i = 1; i < N; ++i)
v[N + i] = v[i];
int ans = INF;
vector<bool> use(N + 1);
for(int i = 1; i <= N; ++i) {
int time = 0;
for(int j = 1; j <= N; ++j)
if(v[i + j - 1] != a[j])
use[j] = true;
else
use[j] = false;
for(int j = 1; j <= N; ++j)
if(v[i + j - 1] != a[j])
for(int k = 1; k <= N; ++k)
if(use[k] && v[i + k - 1] == a[j]) {
use[k] = false;
time += ABS(j - k) + 20;
break;
}
min_self(ans, time);
}
fout << ans;
}