Cod sursa(job #785754)

Utilizator DenisONIcBanu Denis Andrei DenisONIc Data 9 septembrie 2012 20:04:06
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda pregatire-monthly8-ziua1 Marime 1.21 kb
#include <stdio.h> 
FILE* f=fopen("flip.in","r"); 
FILE* g=fopen("flip.out","w"); 
long v[21],x,r[21],r2[21],n2,n,i,j,nr,ok,v2[21],m[21][21],sav1,sav2,maxc,maxl,s; 
int main() 
{ 
	fscanf(f,"%ld%ld",&n,&n2); 
	for (i=1;i<=n;i++) 
	{ 
		for (j=1;j<=n2;j++) 
		{ 
			fscanf(f,"%ld",&m[i][j]); 
			v[i]=v[i]+m[i][j]; 
		} 
	} 
	ok=1; 
	for (i=1;i<=n2;i++) 
		for (j=1;j<=n;j++) 
            v2[i]=v2[i]+m[j][i]; 
    while (ok==1) 
    { 
        ok=0; 
		for (i=1;i<=n2;i++) 
            if (v2[i]<0)  
            { 
                ok=1; 
                v2[i]=v2[i]*-1; 
                for (j=1;j<=n;j++) 
                { 
                    v[j]=v[j]-m[j][i]+m[j][i]*-1; 
                    m[j][i]=m[j][i]*-1; 
                } 
			} 
        for (i=1;i<=n;i++) 
			if (v[i]<0)  
            { 
                ok=1; 
				v[i]=v[i]*-1; 
                for(j=1;j<=n2;j++) 
				{ 
                    v2[j]=v2[j]-m[i][j]+m[i][j]*-1; 
                    m[i][j]=m[i][j]*-1; 
                } 
            } 
        //  nr++; 
        //  if (nr>100) 
        //      break; 
    } 
    for (i=1;i<=n;i++) 
		s=s+v[i]; 
    fprintf(g,"%ld\n",s); 
    fclose(f); 
    return 0; 
}