Pagini recente » Cod sursa (job #1458291) | Cod sursa (job #1395807) | Cod sursa (job #54913) | Cod sursa (job #2745941) | Cod sursa (job #2864577)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("barman.in");
ofstream fout("barman.out");
const int N = 600, inf = 1e9 + 1;
int v[N + 1], vsort[2 * N + 1], correct[N + 1];
int main(){
int n;
fin >> n;
for(int i = 1; i <= n; i++) fin >> v[i], vsort[i] = v[i];
sort(vsort + 1, vsort + n + 1);
for(int i = 1; i <= n; i++) vsort[i + n] = vsort[i];
int ans = inf;
for(int i = 1; i <= n; i++){
int tmp = 0;
for(int j = 1; j <= n; j++)
v[j] == vsort[i + j - 1] ? correct[j] = 1 : correct[j] = 0;
for(int j = 1; j <= n; j++)
if(v[j] != vsort[i + j - 1])
for(int k = 1; k <= n; k++)
if(!correct[k] && vsort[i + k - 1] == v[j]){
correct[k] = 1;
tmp += abs(k - j) + 20;
break;
}
ans = min(ans, tmp);
}
fout << ans;
return 0;
}
// multumiri lui Toma