Cod sursa(job #1397982)

Utilizator curti21Paul Curtean curti21 Data 23 martie 2015 21:31:53
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.6 kb
#include <fstream>
using std::ifstream;
using std::ofstream;
ifstream in("flip.in");
ofstream out("flip.out");

void input(int n, int m, int table[][20])
{
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j++)
            in >> table[i][j];
}

int suma(int n, int m, int table[][20])
{
    int lsum = 0, auxsum = 0, csum = 0;

    // for pentru calcularea celei mai mari sume de pe linii
    for(int i = 1; i <= n; i++) {
        auxsum = 0;
        for(int j = 1; j <= m; j++)
            auxsum = auxsum + table[i][j];
        if(auxsum <= 0) {
            auxsum = 0;
            for(int j = 1; j <= m; j++)
                table[i][j] = table[i][j] * -1;
            for(int j = 1; j <= m; j++)
                auxsum = auxsum + table[i][j];
        }
        //out << "LINII: " << auxsum << "\n";
        lsum = lsum + auxsum;
    }
    
    // for pentru calcularea celei mai mari sume de pe coloane
    for(int j = 1; j <= m; j++) {
        auxsum = 0;
        for(int i = 1; i <= n; i++)
            auxsum = auxsum + table[i][j];
        if(auxsum <= 0) {
            auxsum = 0;
            for(int i = 1; i <= n; i++)
                table[i][j] = table[i][j] * -1;
            for(int i = 1; i <= n; i++)
                auxsum = auxsum + table[i][j];
        }
        //out << "COLOANE: " << auxsum << "\n";
        csum = csum + auxsum;
    }
    //out << "CSUM: " << csum << "\nLSUM: " << lsum;
    return csum;
}

int main(void)
{
    int n, m, table[20][20];
    in >> n >> m;
    input(n, m, table);
    out << suma(n, m, table);
    return 0;
}