Cod sursa(job #2312573)

Utilizator danielglodeanuDaniel Glodeanu danielglodeanu Data 5 ianuarie 2019 01:40:08
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.53 kb
#include <fstream>
using namespace std;

int main() {
    ifstream fin("flip.in");
    ofstream fout("flip.out");
    int l, c, a[17][17], v[17][17], i, j;
    fin>>l>>c;
    
    for (i=0; i<l; i++)
        for (j=0; j<c; j++)
        {
            fin>>a[i][j];
            v[i][j]=a[i][j];
        }
    long long sum=0;
    
    //suma verificata pe coloane
    for (i=0; i<c; i++)
    {
        for (j=0; j<l; j++)
            sum+=a[j][i];
        if (sum<0)
        {
            for (j=0; j<l; j++)
                a[j][i]*=-1;
        }
        sum=0;
    }
    
    //suma verificata pe linii
    for (i=0; i<l; i++)
    {
        for (j=0; j<c; j++)
            sum+=a[i][j];
        if (sum<0)
        {
            for (j=0; j<c; j++)
                a[i][j]*=-1;
        }
        sum=0;
    }
    
    //suma verificata pe coloane
    for (i=0; i<c; i++)
    {
        for (j=0; j<l; j++)
            sum+=a[j][i];
        if (sum<0)
        {
            for (j=0; j<l; j++)
                a[j][i]*=-1;
        }
        sum=0;
    }
    
    //suma verificata pe linii
    for (i=0; i<l; i++)
    {
        for (j=0; j<c; j++)
            sum+=a[i][j];
        if (sum<0)
        {
            for (j=0; j<c; j++)
                a[i][j]*=-1;
        }
        sum=0;
    }
    
    for (i=0; i<l; i++)
        for (j=0; j<c; j++)
        {
            sum+=a[i][j];
            a[i][j]=v[i][j];
        }
    
    long long smax;
    smax=sum;
    sum=0;
    
    //suma verificata pe linii
    for (i=0; i<l; i++)
    {
        for (j=0; j<c; j++)
            sum+=a[i][j];
        if (sum<0)
        {
            for (j=0; j<c; j++)
                a[i][j]*=-1;
        }
        sum=0;
    }
    
    //suma verificata pe coloane
    for (i=0; i<c; i++)
    {
        for (j=0; j<l; j++)
            sum+=a[j][i];
        if (sum<0)
        {
            for (j=0; j<l; j++)
                a[j][i]*=-1;
        }
        sum=0;
    }
    
    //suma verificata pe linii
    for (i=0; i<l; i++)
    {
        for (j=0; j<c; j++)
            sum+=a[i][j];
        if (sum<0)
        {
            for (j=0; j<c; j++)
                a[i][j]*=-1;
        }
        sum=0;
    }
    
    //suma verificata pe coloane
    for (i=0; i<c; i++)
    {
        for (j=0; j<l; j++)
            sum+=a[j][i];
        if (sum<0)
        {
            for (j=0; j<l; j++)
                a[j][i]*=-1;
        }
        sum=0;
    }
    
    for (i=0; i<l; i++)
        for (j=0; j<c; j++)
            sum+=a[i][j];
    
    if (sum>smax) smax=sum;
    
    fout<<smax;
    return 0;
}