Cod sursa(job #1873050)

Utilizator cyber_ghSoltan Gheorghe cyber_gh Data 8 februarie 2017 19:14:20
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>

using namespace std;


ifstream fin("flip.in");
ofstream fout("flip.out");

int N,M,A[20][20],ch[20],rs;

int calcsum(int ch[],int x,bool u){
	int p=0;
	for (int i=1;i<=M;i++){
		if (u){
		if (ch[i]) p+=-A[x][i];
		else p+=A[x][i];
		}
		else {
		if (ch[i]) p+=A[x][i];
		else p+=-A[x][i];
		}
	}
	 
	return p;
}

void check(int ch[]){
	
	int partsum=0,sum1=0;
	/*for (int j=1;j<=M;j++)
		for (int i=1;i<=N;i++) if (ch[j]) sum1+=-A[i][j];
							   else sum1+=A[i][j];
	*/
	for (int i=1;i<=N;i++){
	//	partsum+=max(calcsum(ch,i,0),calcsum(ch,i,1));
		int x1=calcsum(ch,i,0);
		if (x1<0)x1=-x1;
		partsum+=x1;
	}
	
	rs=max(rs,partsum);
}


void back(int ch[],int x){
	if (x==M) {
		ch[x]=0;
		check(ch);
		ch[x]=1;
		check(ch);
		return ;
	}
	ch[x]=0;
	back(ch,x+1);
	ch[x]=1;
	back(ch,x+1);
	
	
	
}

int main(){
	fin >>N>>M;
	for (int i=1;i<=N;i++)
	for (int j=1;j<=M;j++) fin >>A[i][j];
	back(ch,1);
	fout <<rs;
	
	
	
	
	return 0;
	
}