Cod sursa(job #29663)

Utilizator arturgrigorArtur Grigor arturgrigor Data 9 martie 2007 19:06:38
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <stdio.h>

int a[100][3], n, m;

void citire()
{
	FILE *fin;
	fin = fopen("flip.in", "r");
	fscanf(fin, "%d %d", &n, &m);
	int i, j;
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			fscanf(fin, "%d", &a[i][j]);
	fclose(fin);
}

void comuta()
{
	int i, j, minc, maxc, minl, maxl;
	for(i=0;i<n;i++)
	{
		minc = a[i][0];
		maxc = a[i][0];
		for(j=1;j<m;j++)
		{
			if(a[i][j]<minc)
				minc = a[i][j];
			if(a[i][j]>maxc)
				maxc = a[i][j];
		}
		if(minc*-1>maxc)
			for(j=0;j<m;j++)
				a[i][j] = a[i][j] * -1;
	}
	for(j=0;j<m;j++)
	{
		minl = a[0][j];
		maxl = a[0][j];
		for(i=0;i<n;i++)
		{
			if(a[i][j]<minl)
				minl = a[i][j];
			if(a[i][j]>maxl)
				maxl = a[i][j];
		}
		if(minl*-1>maxl)
			for(i=0;i<n;i++)
				a[i][j] = a[i][j] * -1;
	}
}

int suma()
{
	int s = 0, i , j;
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			s += a[i][j];
	return s;
}

void iesire()
{
	FILE *fout;
	fout = fopen("flip.out", "w");
	fprintf(fout, "%d", suma());
	fclose(fout);
}

int main()
{
	citire();
	comuta();
	iesire();
	return 0;
}