Cod sursa(job #2093486)

Utilizator SmLighteAvrigeanu Theodor SmLighte Data 23 decembrie 2017 20:13:18
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <stdlib.h>
int n, m;
int a[100000][16];
void modificare(int i, bool x)
{
	if(x)
		for(int j=1;j<=m;j++)
			a[i][j]*=(-1);
	else if(!x)
		for(int j=1;j<=n;j++)
			a[j][i]*=(-1);
}
void test()
{
	int s1, s2;
	for(int i=1;i<=n;i++)
	{
		s1=0;s2=0;
		for(int j=1;j<=m;j++)
		{
			s1+=a[i][j];
			a[i][j]*=(-1);
			s2+=a[i][j];
		}
		if(s1>s2)
			modificare(i,true);
	}
	for(int j=1;j<=m;j++)
	{
		s1=0;s2=0;
		for(int i=1;i<=n;i++)
		{
			s1+=a[i][j];
			a[i][j]*=(-1);
			s2+=a[i][j];
		}
		if(s1>s2)
			modificare(j,false);
	}
}
void rezolvare()
{
	FILE *g=fopen("flip.out", "w");
	int s=0;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			s+=a[i][j];
	fprintf(g, "%d", s);
	fclose(g);
}
void declaratii()
{
	FILE *f=fopen("flip.in", "r");
	fscanf(f, "%d %d",&n,&m);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			fscanf(f, "%d" ,&a[i][j]);
	test();
	rezolvare();
	fclose(f);
}
int main()
{
	declaratii();
	return 0;
}