Cod sursa(job #610030)

Utilizator Slash95Vlad I. Slash95 Data 24 august 2011 14:50:32
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <iostream.h>
#include <fstream.h>
using namespace std;

int main (void) {
	int N, M, i, j, OK=1, sum=0, m=0, c=1, s=1, v[16][16],w[16][16],a=1,b=1,x,y;
	ifstream f("flip.in");
	ofstream g("flip.out");
	f>>N;
	f>>M;
	for (i=1;i<=N;i++)
		for (j=1;j<=M;j++)
			f>>v[i][j];
	for (i=1;i<=N;i++) {
		for (j=1;j<=M;j++) {
			w[a][b]=v[i][j];
			b++;}
		b=1;
		a++;}
	for (i=1;i<=N;i++)
		 for (j=1;j<=M;j++)
			 m=m+v[i][j];
	while (OK==1) {
		OK=0;
		for (j=1;j<=M;j++) {
			for (i=1;i<=N;i++)
			    w[i][j]=w[i][j]*(-1);
			for (a=1;a<=N;a++)
		        for (b=1;b<=M;b++)
					sum=sum+w[a][b];
			if (sum>m) {OK=1;m=sum;s=j;c=2;}
			sum=0; a=1;b=1;
			for (x=1;x<=N;x++) {
		      for (y=1;y<=M;y++) {
			    w[a][b]=v[x][y];
			    b++;}
		      b=1;
			  a++;}}
		for (i=1;i<=N;i++) {
			for (j=1;j<=M;j++)
				w[i][j]=w[i][j]*(-1);
			for (a=1;a<=N;a++)
		        for (b=1;b<=M;b++)
					sum=sum+w[a][b];
			if (sum>m) {OK=1; m=sum;s=i;c=1;}
			sum=0;a=1;b=1;
			for (x=1;x<=N;x++) {
		      for (y=1;y<=M;y++) {
			    w[a][b]=v[x][y];
			    b++;}
		      b=1;
			  a++;}}
		if (c==1) {
			for (j=1;j<=M;j++)
				v[s][j]=v[s][j]*(-1); }
		if (c==2) { 
			for (i=1;i<=N;i++)
				v[i][s]=v[i][s]*(-1);}
		c=0;a=1;b=1;
		for (i=1;i<=N;i++) {
		    for (j=1;j<=M;j++) {
			    w[a][b]=v[i][j];
			    b++;}
		    b=1;
		    a++;}}
	g<<m;
	f.close ();
	g.close ();}