Cod sursa(job #836966)

Utilizator AnamariaGGogoase Anamaria AnamariaG Data 16 decembrie 2012 22:39:10
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
#include <bitset> 
using namespace std;
int n,m,a[17][17],bestSol=-1000000000,v[17];
bitset<17> b;  
void doSum()
{          
	for(int j=0;j<m;j++)  
		v[j]=0;        
	for(int i=0;i<n;i++)
	{        
		for(int j=0;j<m;j++) 
            v[j]+=(b[i]?a[i][j]:(-1)*a[i][j]);  
		}     
	int sum=0; 
    for(int j=0;j<m;j++)  
		if(v[j]>0) sum+=v[j];  
	else sum+=(-1)*v[j];    
		if(sum>bestSol)      
			bestSol=sum;      
		}   void back(int nivel)
		{    
			if(nivel==n) 
				doSum(); 
			else
			{   
				back(nivel+1);    
				b[nivel]=1;     
				back(nivel+1);    
				} 
		}   int main()
		{    
			freopen("flip.in","r",stdin); 
			freopen("flip.out","w",stdout); 
			scanf("%d %d",&n,&m);   
			for(int i=0;i<n;i++)    
				for(int j=0;j<m;j++) 
					scanf("%d",&a[i][j]); 				
				back(0);     
				printf("%d",bestSol);  
				return 0; 
		}