Cod sursa(job #1331280)

Utilizator cojocariustefancojocariu cojocariustefan Data 31 ianuarie 2015 15:00:06
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.7 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");

int sv(int a[17][17], int n, int j)
{
    int s=0, i;
    for(i=1; i<=n; i++)
        s = s + a[i][j];
    return s;
}

int sh(int a[17][17], int i, int m)
{
    int s=0, j;
    for(j=1; j<=m; j++)
        s = s + a[i][j];
    return s;
}

int main()
{
    int a[17][17], b[17][17], n, m, i, j, x, s=0, k=0;

    f >> n >> m;
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++)
        {
            f >> a[i][j];
            b[i][j] = a[i][j];
        }

    for(i=1; i<=m; i++)
        a[0][i] = b[0][i] = sv(a, n, i);
    for(i=1; i<=n; i++)
        a[i][0] = b[i][0] = sh(a, i, m);

    while(k <=10)
    {for(i=1; i<=m; i++)
    {
        for(j=1; j<=n; j++)
            b[j][i] = b[j][i]*(-1);

        x = sv(b, n, i);
        if(x > a[0][i])
        {
            b[0][i] = x;
            for(j=0; j<=n; j++)
                a[j][i] = b[j][i];
            for(j=1; j<=n; j++)
                a[j][0] = b[j][0] = sh(b, j, m);
        }
        else
            for(j=1; j<=n; j++)
                b[j][i] = a[j][i];
    }
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=m; j++)
            b[i][j] = b[i][j]*(-1);

        x = sh(b, i, m);
        if(x > a[i][0])
        {
            b[i][0] = x;
            for(j=0; j<=m; j++)
                a[i][j] = b[i][j];
            for(j=1; j<=m; j++)
                a[0][j] = b[0][j] = sv(b, n, j);
        }
        else
            for(j=1; j<=m; j++)
                b[i][j] = a[i][j];
    }
    k++;
}
    for(i=1; i<=m; i++)
        s = s + a[0][i];
    g << s;

    return 0;
}