Cod sursa(job #1289924)

Utilizator pavlov.ionPavlov Ion pavlov.ion Data 10 decembrie 2014 16:03:15
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<fstream>
#define INF 1000000
using namespace std;
int N,M;
int F[16][16],P[16],S[16];
int MAX,sum;
ifstream cin("flip.in");
ofstream cout("flip.out");
//contor pe biti
void ink() {
	   int j=0;
	     while(P[j]==1)
		              {
					  P[j]=0;
					  j++;
					  }
		 P[j]=1;
}
int putere(int n,int m)
{
	   int p=1;
	   while(m--)
	   			p*=n;  
	 return p;  			
}
void flip(){
	 int i,j,k,p;
	 MAX=-INF;
	 p=putere(2,M);
	 for(k=0;k<p-1;k++)
	 {  
	 sum=0;		
	 	 for(i=0;i<N;i++)
	                 S[i]=0;		            
	 for(i=0; i<N; i++) 
     {
	     for(j=0; j<M; j++)
	                      {
		        	if(P[j])
					     S[i]-=F[i][j];
					   else 
					     S[i]+=F[i][j];
						 } 
	 if(S[i]>0) 
	         sum+=S[i];
	 else 
	         sum-=S[i];		 		  					  			   	             
	 }
	  if(sum>MAX)
	            MAX=sum;
	 ink();
	 }
}
int main(){
	 int i,j;
	 cin>>N>>M;
	 for(i=0;i<N;i++)
	      for(j=0;j<M;j++)
	                 cin>>F[i][j];
	 flip();
	 cout<<MAX;
return 0;
}