Cod sursa(job #1984532)

Utilizator logix94LOGIX X logix94 Data 25 mai 2017 08:08:12
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <fstream>

using namespace std;

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

int a[16][16], aux[16][16];
int n,m;
int i,j;
long sum;

void duplicateMatrix(){
    for(i=0; i<n; ++i)
        for(j=0; j<m; ++j)
            aux[i][j] = a[i][j];
}


void outputMatrixA(){
    //output
    for(i=0; i<n; ++i){
        for(j=0; j<m; ++j)
            out<<a[i][j]<<' ';
        out<<endl;
    }
}

void outputMatrixAux(){
    //output
    for(i=0; i<n; ++i){
        for(j=0; j<m; ++j)
            out<<aux[i][j]<<' ';
        out<<endl;
    }
}

void flippingLine(int l){

    for(i=0; i<n; ++i)
        aux[i][l] = aux[i][l] *  -1;
}

void flippingColumn(int k){

    for(j=0; j<m; ++j)
        aux[k][j] = aux[k][j] * -1;
}

void computeSum(){

    long auxSum=LONG_MIN;

    for(i=0; i<n; ++i)
        for(j=0; j<m; ++j)
            auxSum += aux[i][j];

    if(auxSum > sum)
        sum = auxSum;
}



int main()
{
    sum = LONG_MIN;
    in >> n >> m;

    //read
    for(i=0; i<n; ++i)
        for(j=0; j<m; ++j)
            in>>a[i][j];

    duplicateMatrix();


    for(int i=0; i<n; ++i)
        for(int j=0; j<m; ++j){
            flippingLine(j);
            computeSum();
            duplicateMatrix();


            flippingColumn(i);
            computeSum();
            duplicateMatrix();
        }


    out<<sum;
    return 0;
}