Cod sursa(job #456883)

Utilizator adrianp2200Pricop Adrian adrianp2200 Data 17 mai 2010 01:27:43
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
/*
 * flip.cpp
 *
 *  Created on: May 17, 2010
 *      Author: Adrian
 */

#include<iostream.h>
#include<math.h>
#include<fstream.h>

unsigned n,m,flag;
long a[100][20];

void adun() {
	flag=1;

    unsigned sn,sp,i,j,k;
    for( i=1;i<=n;i++){
        sn=0;sp=0;
        for( j=1;j<=m;j++)
            if(a[i][j]>=0) sp+=a[i][j];
            else sn+=abs(a[i][j]);

        if(sn>sp) {for( k=1;k<=m;k++) a[i][k]=-a[i][k]; flag=0;}
    }

    for( j=1;j<=m;j++){
        sn=0;sp=0;
        for(i=1;i<=n;i++)
            if(a[i][j]>=0) sp+=a[i][j];
            else sn+=abs(a[i][j]);

        if(sn>sp) for(k=1;k<=n;k++) {a[k][j]=-a[k][j]; flag=0;}
    }

}

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

    f1>>n>>m;
        for(unsigned i=1;i<=n;i++)
        for(unsigned j=1;j<=m;j++)
            f1>>a[i][j];

    long s=0;
    flag=0;
    if(n>=1 && m<=16) {
    	while(!flag)
        adun();

        for(unsigned i=1;i<=n;i++)
            for(unsigned j=1;j<=m;j++)
                s+=a[i][j];
        f2<<s;
    }

    f1.close();
    f2.close();

    return 0;
}