Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8. Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
#include <iostream>
#include <cmath>

using namespace std;

int n, id, elementy;
int tab[200];

int c[200][3];


bool spr[2005];
long long min_zaplata = 1000000000000000;
long long z;

void dec_to_bin(int liczba)
{
  int i=0;

  while(liczba) //dop�ki liczba b�dzie r�na od zera
  {
    tab[i++]=liczba%2;
    liczba/=2;
  }

  /*for(int j=elementy-1;j>=0;j--)
    cout<<tab[j];*/
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin >> n;
    id = 0;
    for(int i = 1; i <= n; i++)
    {
        for(int j = i; j <= n; j++)
        {
            cin >> c[id][0];
            c[id][1] = i;
            c[id][2] = j;
            id++;
        }
    }
    /*id = 0;
    for(int i = 1; i <= n; i++)
    {
        for(int j = i; j <= n; j++)
        {
            cout <<c[id][0]<<" "<<c[id][1]<<" "<<c[id][2]<<"\n";
            id++;
        }
    }*/
    elementy = n*(n-1)/2;
    for(int i = 0; i <= pow(2,elementy); i++)
    {
        int a = i;
        int b = i >> 1;
        int d = a^b;
        //cout << a<<" ";
        dec_to_bin(d);
        //cout <<"\n";
        z = 0;
        for(int j = 0; j <= n; j++)
        {
            spr[j] = 0;
        }
        for(int j = 0; j < elementy; j++)
        {
            if(tab[j] == 1)
            {
                z += c[j][0];
                spr[c[j][1]-1] = 1;
                spr[c[j][2]] = 1;
            }
        }
        bool straznik = true;
        for(int j = 0; j <= n; j++)
        {
            if(spr[j] == 0)
            {
                straznik = false;
                break;
            }
        }
        if(straznik == true)
        {
            if(min_zaplata > z)
            {
                min_zaplata = z;
                /*cout <<min_zaplata<<" ";
                for(int j=elementy-1;j>=0;j--)
                    cout<<tab[j];
                cout <<"\n";*/
            }
        }
    }
    cout << min_zaplata;
    return 0;
}