Cod sursa(job #2232484)

Utilizator YenmaRosu Cristian Yenma Data 19 august 2018 16:04:55
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
//============================================================================
// Name        : JoculFlip.cpp
// Author      : Cristi Rosu
// Version     :
// Copyright   : All rights reserved to Cristi Rosu
// Description : Jocul Flip in C++, Ansi-style
//============================================================================

#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");

int a[20][20], n, m, i, j;

void afisare(int v[20][20]){
	for(i=1; i<=n; i++){
		for(j=1; j<=m; j++)
			g<<v[i][j]<<" ";
		g<<endl;
	}
}

int suma_matrice(int v[20][20]){
	int suma=0;
	for(i=1; i<=n; i++)
		for(j=1; j<=m; j++)
			suma+=a[i][j];
	return suma;
}

int recursiv(int x){
	int s1=0, s2=0, temp;
	for(i=1; i<=n; i++){
		for(j=1; j<=m; j++){
			s1+=a[i][j];
		}
		if(s1*(-1)>s1){
			for(j=1; j<=m; j++)
				a[i][j]*=(-1);
			temp=suma_matrice(a);
			if(temp>=x){
				x=temp;
				for(j=1; j<=m; j++){
					for(i=1; i<=n; i++){
						s2+=a[i][j];
					}
					if(s2*(-1)>s2){
						for(i=1; i<=n; i++)
							a[i][j]*=(-1);
						temp=suma_matrice(a);
						if(temp>=x){
							recursiv(temp);
							x=temp;
						}
					}
					s2=0;
				}
			}
		}
		s1=0;
	}
	return x;
}

int main() {
	f>>n>>m;
	for(i=1; i<=n; i++)
		for(j=1; j<=m; j++){
			f>>a[i][j];
		}
	g<<recursiv(suma_matrice(a));
	return 0;
}