Cod sursa(job #980321)

Utilizator junkieSmerica Valeriu junkie Data 4 august 2013 15:31:45
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
int k,n,m,i,j,a[20][20],v[50],s,s1,c[20][20];
bool succesor(int k){if(v[k]<2){v[k]++;return true;}return false;}
void suma()
{for(i=1;i<=n;i++)
if(v[i]==1)for(j=1;j<=m;j++)a[i][j]=c[i][j];
else for(j=1;j<=m;j++)a[i][j]=-c[i][j];
for(j=n+1;j<=n+m;j++)
if(v[j]==1)for(i=1;i<=n;i++)a[i][j-n]=c[i][j-n];
else for(i=1;i<=n;i++)a[i][j]=-c[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)s1+=a[i][j];
if(s1>s)s=s1;s1=0;}
void bt(int k)
{v[k]=0;
while(succesor(k))
if(k==n+m)suma();
else bt(k+1);}
int main()
{std::ifstream f("flip.in");
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++){f>>a[i][j];c[i][j]=a[i][j];}
f.close();
bt(1);
std::ofstream g("flip.out");
g<<s;g.close();}