Cod sursa(job #549012)

Utilizator iAmZeeBogdan Andrei iAmZee Data 8 martie 2011 03:21:27
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.66 kb
#include <iostream>
#include <fstream>

using namespace std;
int n,m;

void invertLine(int** a, int l) {
    int i;
}

void invertCol(int** a, int c) {
    int i;
}

int main() {
    ifstream in;
    ofstream out;
    in.open("flip.in");
    out.open("flip.out");

    in >> n;
    in >> m;

    int a[n+2][m+2];
    int i, j, temp;
    int suma = 0;

    for(i = 0;i < n; i++) {
        a[i][m] = 0; // setez capetele = 0
        a[i][m+1] = 0;
        for(j = 0; j < m; j++) {
            if(i==0) {
                a[n][j] = 0; // setez capetele = 0
                a[n+1][j] = 0;
            }
            in >> temp;
            if(temp < 0) {
                // retin in capete suma numerelor negative 
                // si suma numerelor pozitive
                a[i][m+1] += temp; // a[*][n+1] = suma numerelor negative
                a[n+1][j] += temp; // a[*][n] = suma numerelor pozitive
            } else {
                a[i][m] += temp;
                a[n][j] += temp;
            }
            a[i][j] = temp;
        }
    }

    // Verific sumele. Daca |suma nr negative| > |suma nr pozitive|... inversez

    for(i = 0 ;i < n;i++)
        if (a[i][m] < -a[i][m+1])
            for(j = 0;j < m;j++)
                a[i][j] = -a[i][j];

    for(i = 0;i < m;i++)
        if (a[n][i] < -a[n+1][i])
            for(j = 0; j < n;j++)
                 a[j][i] = -a[j][i];
    // Calculez Suma totala

    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            suma += a[i][j];
        

    for(i = 0;i <= n+1 ; i++) {
        for(j = 0 ; j <= m+1 ; j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }

    out << suma;
    in.close();
    out.close();

    return 0;
}