Cod sursa(job #245070)

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

int a[18][18],m,n,maxx=0;  
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;  
         }