Cod sursa(job #245067)

Utilizator QuantumEduard Lataretu Quantum Data 16 ianuarie 2009 18:14:06
Problema Jocul Flip Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream> 
using namespace std;

int a[16][16],m,n,maxx;
void flip(int x[])  
{  int s,st,i,j;  
    for(i=1;i<=n;i++)  
      if(x[i]==1)  
         for(j=1;j<=m;j++) a[i][j]*=(-1);  
    st=0;  
	for(j=1;j<=m;j++) {  
         s=0;  
         for(i=1;i<=n;i++) s+=a[i][j];  
         if(s<0) st=st-s; else st=st+s;  
        }  
     if (st>maxx) maxx=st;  
     for(i=1;i<=n;i++)  
     if(x[i]==1) for(j=1;j<=m;j++) a[i][j]*=(-1);  
}  
int main() {  
    int x[20],k,ok,i,j;  
	fstream fin("flip.in",ios::in);  
    fin>>n>>m;  
    for(i=1;i<=n;i++)  
        for(j=1;j<=m;j++) fin>>a[i][j];  
    fin.close();  
    x[k=1]=-1;  
	while(k>0) { 
         ok=0;  
		 while(ok==0&&x[k]<1) {x[k]++; ok=1;}  
         if(ok) if(k==n) flip(x); 
				else x[++k]=-1;  
         else k--;  
       }  
	fstream fout("flip.out",ios::out); 
    fout<<maxx;  
	fout.close();
return 0;  
}