Cod sursa(job #527571)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 31 ianuarie 2011 21:33:52
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<iostream>
using namespace std;
int a[17][17],n,m,b[17][17];
int v[18],sum[17];

void FlipL(int l)
{
	int i;
	for(i=1;i<=m;i++)
		b[l][i]=b[l][i]*(-1);
}

int main()
{
	int i,j,s=0,smax=0;
	ifstream fin("flip.in");
	fin>>n>>m;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
			fin>>a[i][j];
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
			b[i][j]=a[i][j];
	fin.close();
	while(v[n+1]!=1)
	{
		for(i=1;i<=n;i++)
			if(v[i]) FlipL(i);
		for(i=1;i<=n;i++)
			for(j=1;j<=m;j++)
				sum[j]+=b[i][j];
		s=0;
		for(i=1;i<=m;i++)
			s=s+abs(sum[i]);
		if(s>smax) smax=s;
		memset(sum,0,sizeof(sum));
		for(i=1;i<=n;i++)
			for(j=1;j<=m;j++)
				b[i][j]=a[i][j];
		i=1;
		while(v[i]==1)
		{
			v[i]=0;
			i++;
		}
		v[i]++;
	}
	ofstream fout("flip.out");
	fout<<smax<<"\n";
	fout.close();
	return 0;
}