Cod sursa(job #164074)

Utilizator g_petricagabriel petrica g_petrica Data 23 martie 2008 15:11:28
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream.h>
int n, m, l[17], c[17], v[33];
unsigned long a[17][17];
void citire()
 {
  int i, j;
  ifstream fin("flip.in");

  fin>>n>>m;
  for(i=1;i<=n;i++)
   for(j=1;j<=m;j++)
    fin>>a[i][j];
 }
int suma()
 {
  int i, j, s=0;
  for(i=1;i<=n;i++)
   {
    l[i]=0;
   for(j=1;j<=m;j++)
    l[i]=l[i]+a[i][j];
   }
  for(i=1;i<=m;i++)
   {
   c[i]=0;
   for(j=1;j<=n;j++)
    c[i]=c[i]+a[j][i];
   }
  for(i=1;i<=n;i++)
   s=s+l[i];
  return s;
 }
void main()
 {


  int p=1, s, max=0, ss, i;
  citire();
  ss=suma();
  ofstream fout("flip.out");

  while(p)
   {
    p=0;
    for(i=n+m;i>=1;i--)
     if(v[i]==0)
      {
       v[i]=1;
	p=i;
	break;
      }

     for(i=p+1;i<=n+m;i++)
      v[i]=0;

     s=ss;
     for(i=1;i<=n;i++)
      if(v[i]==1)
       s=s-2*l[i];

     for(i=n+1;i<=n+m;i++)
      if(v[i]==1)
       s=s-2*c[i-n];
      if(s>max)
       max=s;
    }

  fout<<max;

 }