Cod sursa(job #1721616)
| Utilizator | Data | 26 iunie 2016 02:05:58 | |
|---|---|---|---|
| Problema | Jocul Flip | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <stdio.h>
#include <stdlib.h>
int v[17][17],S,sol[17],n,m,i,j,sl;
void back(int k,int s)
{
if(k==n+m) {if(s>S) S=s; }
else
{
if(k<n)
{
sol[k]=1; back(k+1,0);
sol[k]=-1; back(k+1,0);
}
else
{
sl=0;
for(i=0;i<n;i++)
sl+=(v[i][k-n-1]*sol[i]);
back(k+1,sl+s);
back(k+1,-sl+s);
}
}
}
int main()
{
FILE *f=fopen("flip.in","r");
FILE *fp=fopen("flip.out","w");
fscanf(f,"%d %d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
fscanf(f,"%d",&v[i][j]);
}
back(0,0);
fprintf(fp,"%d",S);
return 0;
}
