Cod sursa(job #1124783)

Utilizator vladvlad00Vlad Teodorescu vladvlad00 Data 26 februarie 2014 13:44:43
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.37 kb
#include <fstream>

using namespace std;

ifstream fin("linie.in");
ofstream fout("linie.out");

int n, S, a[15][15], s1, s2, v[15], V[15], minim = 9999999;

void gard(int k);
void verificare();

int main()
{
    int i, j;

    fin >> n;
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
        {
            fin >> a[i][j];
            S+=a[i][j];
        }
    gard(1);
    fout << s1 << '\n' << s2 << '\n';
    for (i=1;i<=n;i++)
        fout << V[i] << ' ';
    fout << '\n';
    return 0;
}

void gard(int k)
{
    int i;

    if (k == n+1)
        verificare();
    else
    {
        if (k == 1)
            for (i=1;i<n;i++)
            {
                v[k] = i;
                gard(k+1);
            }
        else
        {
            if (v[k-1] > 1)
            {
                v[k] = v[k-1]-1;
                gard(k+1);
            }
            v[k] = v[k-1];
            gard(k+1);
            v[k] = v[k-1]+1;
            gard(k+1);
        }
    }
}

void verificare()
{
    int i, j, sum = 0, nr = 0;

    for (i=1;i<=n;i++)
        for (j=1;j<=v[i];j++)
            sum+=a[i][j];
    if (2*sum < S)
        nr = S-sum-sum;
    else
        nr = sum+sum-S;
    if (nr < minim)
    {
        minim = nr;
        s1 = sum;
        s2 = S-sum;
        for (i=1;i<=n;i++)
            V[i] = v[i];
    }
}