Cod sursa(job #2861163)

Utilizator toma_ariciuAriciu Toma toma_ariciu Data 3 martie 2022 17:04:44
Problema Barman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

const string filename = "barman";
ifstream fin(filename + ".in");
ofstream fout(filename + ".out");

int n, v[1205], a[605];
int ans = 0x3f3f3f3f;
bool used[605];

int main()
{
    fin >> n;
    for(int i = 1; i <= n; i++)
    {
        fin >> v[i];
        a[i] = v[i];
    }
    sort(v + 1, v + n + 1);
    for(int i = 1; i < n; i++)
        v[n + i] = v[i];
    for(int i = 1; i <= n; i++)
    {
        int cost = 0;
        for(int j = 1; j <= n; j++)
        {
            if(v[i + j - 1] == a[j])
                used[j] = 1;
            else
                used[j] = 0;
        }
        for(int j = 1; j <= n; j++)
        {
            if(v[i + j - 1] == a[j])
                continue;
            for(int k = 1; k <= n; k++)
            {
                if(!used[k] && v[i + k - 1] == a[j])
                {
                    used[k] = 1;
                    cost += abs(k - j) + 20;
                    break;
                }
            }
        }
        ans = min(ans, cost);
    }
    fout << ans;
    return 0;
}