Pagini recente » Cod sursa (job #92262) | Cod sursa (job #2199441) | Cod sursa (job #2253765) | Cod sursa (job #2558248) | Cod sursa (job #428148)
Cod sursa(job #428148)
#include <iostream>
#include <fstream>
using namespace std;
ofstream fout("flip.out");
int a[20][20],l[20],c[20],n,m,af=0;
void afis()
{
int s=0;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
s+=a[i][j];
fout<<s;
af=1;
}
void verificare()
{
for (int i=1;i<=n;i++)
{
c[i]=0;l[i]=0;
}
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
{
l[i]+=a[i][j];
c[j]+=a[i][j];
}
for (int i=1;i<=n;i++)
{
if (c[i]<0) c[i]=1;
else c[i]=0;
if (l[i]<0) l[i]=1;
else l[i]=0;
}
/*for (int i=1;i<=n;i++)
fout<<l[i]<<" ";
fout<<'\n';
for (int i=1;i<=n;i++)
fout<<c[i]<<" ";*/
}
void bk(int k)
{
int j;
if (k==1) afis();
else if (af==1);
else for (j=1;j<=n && af==0;j++)
{
k=1;
if(c[j]==1)
{
for (int i=1;i<=n;i++)
a[i][j]=-a[i][j];
/*for (int i=1;i<=n;i++)
{
fout<<'\n';
for (int l=1;l<=m;l++)
fout<<a[i][l]<<" ";
}*/
k=0;
verificare();
/*for (int i=1;i<=n;i++)
fout<<c[i]<<" ";*/
bk(k);
}
if(l[j]==1)
{
for (int i=1;i<=n;i++)
a[j][i]=-a[j][i];
k=0;
verificare();
bk(k);
}
if (j==n)bk(k);
}
}
int main ()
{
ifstream fin ("flip.in");
fin>>n>>m;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
fin>>a[i][j];
verificare();
bk(0);
return 0;
}