Cod sursa(job #304197)
Utilizator | Catalin Ionescu catalin93 | Data | 11 aprilie 2009 13:19:59 |
---|---|---|---|
Problema | Jocul Flip | Scor | 100 |
Compilator | cpp | Status | done |
Runda | runda incepatorilor | Marime | 0.55 kb |
#include<fstream.h>
ifstream f1("flip.in");
ofstream f2("flip.out");
long int a[17][17],max;
int n,m,sol[35];
void calcul()
{
int q=0;
int s;
for(int i=1;i<=m;i++)
{ s=0;
for(int j=1;j<=n;j++)
s+=a[j][i]*sol[j];
if(s<0) s=-s;
q+=s;
}
if(max<q)max=q;
}
void back(int k)
{
if(k==n+1)calcul();
else
{
sol[k]=1;
back(k+1);
sol[k]=-1;
back(k+1);
}
}
int main()
{
f1>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++) f1>>a[i][j];
max=-10000;
back(1);
f2<<max;
return 0;
}