Pagini recente » Cod sursa (job #2091) | Cod sursa (job #385750) | Cod sursa (job #361306) | Cod sursa (job #424749) | Cod sursa (job #593506)
Cod sursa(job #593506)
# include <algorithm>
# include <cstdio>
const char *FIN = "barman.in", *FOU = "barman.out" ;
const int MAX = 605 ;
int A[MAX], B[MAX], C[MAX] ;
bool D[MAX] ;
int N ;
int main (void) {
freopen (FIN, "r", stdin) ;
scanf ("%d", &N) ;
for (int i = 1; i <= N; ++i)
scanf ("%d", A + i), B[i] = A[i] ;
std :: sort (B + 1, B + N + 1) ;
int sol = 0x7FFFFFFF ;
for (int i = 1, act = 0; i <= N; ++i) {
for (int j = 1; j <= N; ++j)
C[j] = act, D[j] = 0 ;
for (int j = 1; j <= N; ++j)
if (A[j] == B[j])
C[j] = A[j], D[j] = 1 ;
int aux = 0 ;
for (int j = 1; j <= N; ++j) {
if (D[j] == 0) {
for (int k = 1; k <= N; ++k)
if (A[j] == B[k] && C[k] == act) {
aux += abs (j - k) + 20, C[k] = A[j] ;
break ;
}
}
}
sol = std :: min (sol, aux) ;
aux = B[N] ;
memmove (&B[2], &B[1], sizeof (int) * (N - 1)) ;
B[1] = aux ;
}
fprintf (fopen (FOU, "w"), "%d", sol) ;
}