Cod sursa(job #2725248)

Utilizator FrostfireMagirescu Tudor Frostfire Data 18 martie 2021 16:49:58
Problema Barman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define inf 2000000000
#define NMAX 600
#define f first
#define s second
 
using namespace std;
 
ifstream fin("barman.in");
ofstream fout("barman.out");
 
int n, ans = inf, v[NMAX+10], aux[NMAX+10], taken[NMAX+10];
 
void solve()
{	for(int i=1; i<=n; i++)
		taken[i] = 0;
	int curr = 0;
	for(int i=1; i<=n; i++)
		{	if(aux[i] == v[i])
				continue;
			for(int j=1; j<=n; j++)
				if(v[i] == aux[j] && aux[j] != v[j] && !taken[j])
					{	curr = curr + 20 + abs(i - j);
						taken[j] = 1;
						break;
					}
		}
	ans = min(ans, curr);
	int val = aux[1];
	for(int i=2; i<=n; i++)
		aux[i-1] = aux[i];
	aux[n] = val;
}
 
int main()
{
	fin >> n;
	for(int i=1; i<=n; i++)
		{	fin >> v[i];
			aux[i] = v[i];
		}
	sort(aux+1, aux+n+1);
	for(int i=1; i<=n; i++)
		solve();
	fout << ans << '\n';
	return 0;
}