Cod sursa(job #2471716)

Utilizator Stefan15stefan Stefan15 Data 11 octombrie 2019 11:44:51
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.34 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n,m;
int t[20][20];

int maxSum = -1000000;

void afis()
{
    for(int i = 0; i <= n ; i++)
    {
        for(int j = 0; j <= m ; j++)
            cout<<t[i][j]<<" ";
        cout<<endl;
    }
}

void makeSums()
{
    int sum = 0;
    for(int i = 1; i <= n ; i++)
        t[i][0] = 0;
    for(int j = 1; j <= m ; j++)
        t[0][j] = 0;
    for(int i = 1; i <= n ; i++)
        for(int j = 1; j <= m ; j++)
        {
            t[i][0] += t[i][j];
            t[0][j] += t[i][j];
            sum += t[i][j];
        }
    if(sum > maxSum) maxSum = sum;
}

void changeCol(int col)
{
    for(int i = 1; i <= n ; i++)
        t[i][col] *= -1;
}
void changeLine(int ln)
{
    for(int j = 1; j <= m ; j++)
        t[ln][j] *= -1;
}

int main()
{
    f>>n>>m;
    for(int i = 1; i <= n ; i++)
        for(int j = 1; j <= m ; j++)
            f>>t[i][j];
    makeSums();
    for(int i = 1; i <= n ; i++)
        if(t[i][0] < 0)
        {
            changeLine(i);
            makeSums();
        }
    for(int j = 1; j <= m ; j++)
        if(t[0][j] < 0)
        {
            changeCol(j);
            makeSums();
        }
    g<<maxSum;
    f.close();
    g.close();
    return 0;
}