Pagini recente » Cod sursa (job #983978) | Cod sursa (job #1199681) | Cod sursa (job #619667) | Cod sursa (job #2884670) | Cod sursa (job #782906)
Cod sursa(job #782906)
#include <fstream>
#include <algorithm>
#include <cstring>
#define MAX 1024
#define INF 0x3f3f3f3f
using namespace std;
int v[MAX], aux[MAX], perm[MAX], n, minim = INF;
bool taken[MAX];
int solve()
{
int time = 0;
for(int i = 0; i < n; i++)
{
if(v[i] == perm[i]) continue;
for(int j = 0; j < n; j++)
{
if(!taken[j] && perm[i] == v[j])
{
taken[j] = true;
time += 20 + abs(i - j);
}
}
}
return time;
}
int main()
{
ifstream in("barman.in");
in>>n;
for(int i = 0; i < n; i++)
{
in>>v[i]; aux[i] = v[i];
}in.close();
sort(aux, aux + n);
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
perm[j] = aux[(i + j) % n];
memset(taken, 0, MAX * sizeof(bool));
minim = min(minim, solve());
}
ofstream out("barman.out"); out<<minim; out.close();
return 0;
}