Cod sursa(job #1507892)

Utilizator NuadorDemeter Csaba Nuador Data 21 octombrie 2015 23:16:34
Problema Jocul Flip Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <stdio.h>

#define fr(i,a,b) for(i=a;i<b;i++)

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

int main(){
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    int i,j,x,y;
    scanf("%d%d",&n,&m);
    fr(i,0,n){fr(j,0,m){scanf("%d",&t[i][j]);}}
    //for(i=0;i<n;i++){for(j=0;j<m;j++){printf("%d ",t[i][j]);}printf("\n");}
    int ell=1,e1,l1,e2,l2;
    while(ell){
        e1=0;l1=-1;e2=0;l2=-1;
        for(i=0;i<n;i++){
            x=0;y=0;
            for(j=0;j<m;j++){
                x+=t[i][j];
                y+=t[i][j]*-1;
            }
            if(y>x){if(y>e1){e1=y;l1=i;}}
        }
        for(i=0;i<m;i++){
            x=0;y=0;
            for(j=0;j<n;j++){
                x+=t[j][i];
                y+=t[j][i]*-1;
            }
            if(y>x){if(y>e2){e2=y;l2=i;}}
        }
        if(e1!=0 && e2!=0){
            for(i=0;i<n;i++){
                t[i][l1]*=-1;
            }
            for(i=0;i<m;i++){
                if(i==l1){continue;}
                t[l2][i]*=-1;
            }
        }else{
            ell=0;
        }

    }
    x=0;
    fr(i,0,n){
        fr(j,0,m){
            x+=t[i][j];
        }
    }
    printf("%d",x);
    return 0;
}