Cod sursa(job #55960)

Utilizator vicenzo_cnuStan Alexandru Dan vicenzo_cnu Data 28 aprilie 2007 18:01:44
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
#include<math.h>
int n,m,d[20];
long a[20][20],cf[20][20];
long long max,s,s1,c;
FILE *f,*g;
void citire()
{f=fopen("flip.in","r");
g=fopen("flip.out","w");
fscanf(f,"%d %d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{fscanf(f,"%ld",&a[i][j]);cf[i][j]=a[i][j];
s1+=a[i][j];}
s=max=s1;}


void constituire()
{int i,j;
s=s1;
for(j=1;j<=m;j++)
for(i=1;i<=n;i++)
{cf[i][j]=a[i][j]*pow(-1,d[j]);
s=s-a[i][j]+cf[i][j];}
for(i=1;i<=n;i++)
{c=0;
for(j=1;j<=m;j++)
c+=cf[i][j];
if(c<0)
s=s-c+c*(-1);}
if(s>max)
max=s;
}


void bkt(int k)
{for(int i=0;i<=1;i++)
{d[k]=i;
constituire();
if(k<m)
bkt(k+1);}}


int main()
{citire();
bkt(1);
fprintf(g,"%lld",max);
fclose(f);
fclose(g);
return 0;}