Cod sursa(job #178479)

Utilizator aigoiaAlexandru Goia aigoia Data 14 aprilie 2008 17:44:40
Problema Jocul Flip Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <stdio.h>

int main()
    {
    FILE *input, *output;
    remove("flip.out");
    input = fopen("flip.in", "r");
    output = fopen("flip.out", "a");
    
    int N, M;
    int a[16][16];
    int S = 0;
    int i,j, oriz, vert;
    int si, sj;
    for(i=0;i<16;i++)
	for(j=0;j<16;j++)
	    a[i][j] = 0;
    
    fscanf(input, "%d %d", &N, &M);
    printf("N = %d\n", N);
    printf("M = %d\n", M);
    
    for(i=0;i<N;i++)
	for(j=0; j<M; j++)
	    fscanf(input, "%d", &a[i][j]);
    
o:  oriz = 0;
    for(i=0;i<N;i++)
	{
	si=0;
	for(j=0;j<M;j++)
	    si = si + a[i][j];
	if(si < 0)
	    {
	    for(j=0;j<M;j++)
		a[i][j] = -a[i][j];
	    oriz++;
	    }
	}

v:  vert = 0;
    for(j=0;j<M;j++)
	{
	sj=0;
	for(i=0;i<N;i++)
	    sj = sj + a[i][j];
	if(sj < 0)
	    {
	    for(i=0;i<N;i++)
		a[i][j] = -a[i][j];
	    vert++;
	    }
	}

    if( oriz == 0 && vert == 0)
	{
	for(i=0;i<N;i++)
	    for(j=0;j<M;j++)
		S = S + a[i][j];
	fprintf(output, "%d", S);	
	goto end;
	}
	else goto o;

end:	
    fclose(input);
    fclose(output);
    return 0;
    }