Cod sursa(job #217133)

Utilizator lorandCsorba Lorand-Alexandru lorand Data 27 octombrie 2008 10:56:24
Problema Jocul Flip Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
using namespace std;
#include<fstream>
void citeste();
void afiseaza();
void back(int);
void suma_tab();
unsigned n,m;
long a[16][16],sum_max;
int shift[16];
int main()
{
  citeste();
  back(0);
  afiseaza();
  return 0;
}
void citeste()
{
  unsigned i,j;
  ifstream fin("flip.in");
  fin>>n>>m;
  for(i=0;i<n;i++)
     for(j=0;j<m;j++)
	{fin>>a[i][j];
	 sum_max+=a[i][j];
	}
  fin.close();
}
void afiseaza()
{
  ofstream fout("flip.out");
  fout<<sum_max;
  fout.close();
}
void back(int k)
{
  shift[k]=-1;
  if(k==n-1)
    suma_tab();
  else
    back(k+1);
  shift[k]=1;
  if(k==n-1)
    suma_tab();
  else
    back(k+1);
}
void suma_tab()
{
  long suma=0,s=0;
  unsigned i,j;
  for(i=0;i<n;i++,s=0)
     {for(j=0;j<m;j++)
	 s+=a[i][j]*shift[j];
      if(s>0)
	suma+=s;
      else
	suma-=s;
     }
  if(suma>sum_max)
    sum_max=suma;
}