Cod sursa(job #1516512)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 3 noiembrie 2015 09:17:26
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>

using namespace std;
int a[18][18], v[18], b[18][18];

int n, m, maxim = 0, i, j, sum, s;

int main()
{
    FILE *fin=fopen ("flip.in","r");
    FILE *fout=fopen ("flip.out","w");

    fscanf (fin,"%d%d",&n,&m);
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++){
            fscanf(fin,"%d",&a[i][j]);
        }
    while (v[0] == 0) {
        // construim urmatoarea submultime
        i = m;
        while (v[i] == 1) {
            v[i] = 0;
            i--;
        }
        v[i] = 1;

        //intoarcem coloanele ce corespund pozitiilor din v pe care este 1

        for (i=1;i<=n;i++)
            for (j=1;j<=m;j++)
                if (v[j] == 1)
                    b[i][j] = -a[i][j];
                else
                    b[i][j] = a[i][j];
        sum = 0;
        for (i=1;i<=n;i++) {
            s = 0;
            for (j=1;j<=m;j++)
                s = s + b[i][j];
            if (s < 0)
                sum -= s;
            else
                sum += s;
        }
        if (sum > maxim)
            maxim = sum;
    }
    fprintf(fout,"%d",maxim);
    return 0;
}