Cod sursa(job #3353200)

Utilizator unomMirel Costel unom Data 5 mai 2026 15:37:07
Problema Barman Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <fstream>
#include <iostream>

using namespace std;

ifstream in("barman.in");
ofstream out("barman.out");
int n;
int v[1205];
int temp[1205];
int INF = (1 << 30);

int cost(int i, int j)
{
    if(i == j)
    {
        return 0;
    }

    if(i > n)
    {
        i -= n;
    }
    if(j > n)
    {
        j -=  n;
    }

    int ans = 2 * abs(i - j) + 4 * 10;
    return ans;
}

int main()
{
    in>>n;
    for(int i = 1; i<=n; i++)
    {
        in>>v[i];
        v[n + i] = v[i];
    }

    int ans = INF;
    for(int start = 2; start <= 2; start++)
    {
        int st = start;
        int dr = start + n - 1;

        for(int i = st; i<=dr; i++)
        {
            temp[i] = v[i];

//            cout<<temp[i]<<" ";
        }

        int sum = 0;
        for(int i = st; i<=dr; i++)
        {
            int pozmin = i;
            for(int j = i; j<=dr; j++)
            {
                if(temp[j] < temp[pozmin])
                {
                    pozmin = j;
                }
            }

//            cout<<i<<" "<<pozmin<<'\n';

            swap(temp[i], temp[pozmin]);
            sum += cost(i, pozmin);
        }

        ans = min(ans, sum);
    }

    out<<ans;

    return 0;
}