Cod sursa(job #1126411)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 26 februarie 2014 23:09:06
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <cstdio>
using namespace std;
FILE *f=fopen("flip.in","r");
FILE *g=fopen("flip.out","w");
bool ok;int n,m;
long long maxim;

void backtrack(int v[17][17])
{long long suma=0;
int i,j,s;
for (i=1;i<=n;i++) {s=0;
                    for (j=1;j<=m;j++) s+=v[i][j];
                    if (s<0) {for (j=1;j<=m;j++) v[i][j]=-v[i][j];
                              backtrack(v);
                              for (j=1;j<=m;j++) v[i][j]=-v[i][j];}
                    suma+=s;
                    }
for (j=1;j<=m;j++) {s=0;
                    for (i=1;i<=n;i++) s+=v[i][j];
                    if (s<0) {for (i=1;i<=n;i++) v[i][j]=-v[i][j];
                              backtrack(v);
                              for (i=1;i<=n;i++) v[i][j]=-v[i][j];
                              }
                    }
if (suma>maxim) maxim=suma;
}
int main()
{int i,j,v[17][17]={0};

fscanf(f,"%d %d",&n,&m);
for (i=1;i<=n;i++) for (j=1;j<=m;j++) fscanf(f,"%d",&v[i][j]);
backtrack(v);

fprintf(g,"%lld",maxim);
return 0;
}