Cod sursa(job #672263)

Utilizator harababurelPuscas Sergiu harababurel Data 1 februarie 2012 20:03:33
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <limits.h>
using namespace std;
bool st[289], semn;
int a[17][17];
int n, m, maxim=-INT_MAX;

ofstream g("flip.out");
ifstream f("flip.in");

void citire() {
	f>>n;
	f>>m;
	int i,j;
	for(i=1; i<=n; i++) {
		for(j=1; j<=m; j++) {
			f>>a[i][j];
		}
	}
}
		
int verifica_suma() {
	int i, j;
	long s=0;
	for(i=1; i<=n; i++) {
		for(j=1; j<=m; j++) {
			semn=1;
			if(!st[i]&& st[n+j]) { semn=0; }
			if(st[i]&& !st[n+j]) { semn=0; }
			
			if(semn) { s+=a[i][j]; }
			else { s-=a[i][j]; }
		}
	}
	return s;
}


int back(int k) {
	int i, suma;
	for(i=1; i>=0; i--) {
		st[k]=i;
		if(k==n+m) { 
			
			suma=verifica_suma();
			if(suma>maxim) maxim=suma;
		}
		else { back(k+1); }
	}

}

int main() {
	
	citire();
	back(1);
	
	g<<maxim<<"\n";
	
	f.close();
	g.close();
	return 0;
}