Cod sursa(job #2864577)

Utilizator lolismekAlex Jerpelea lolismek Data 7 martie 2022 23:12:35
Problema Barman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#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