Pagini recente » Cod sursa (job #662130) | Cod sursa (job #591432) | Cod sursa (job #1180312) | Cod sursa (job #641054) | Cod sursa (job #572303)
Cod sursa(job #572303)
#include<fstream>
using namespace std;
fstream f1,f2;
int a[18][18],b[18],i,j,n,m,r,x,q,smax,s,c[18][18];
int main()
{
int i1,j1;
f1.open("flip.in",ios::in);
f2.open("flip.out",ios::out);
f1>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
f1>>a[i][j];
c[i][j]=a[i][j];
smax=smax+a[i][j];
}
q=(1<<n)-1;//2^n-1
for(i=0;i<=q;i++)
{
x=i;
for(j=1;j<=n;j++)
{
r=x%2;
b[j]=r;
x=x/2;
}
for(x=1;x<=n;x++)
{
if(b[x]%2==1)
{
for(j=1;j<=m;j++)
a[x][j]=a[x][j]*(-1);
}
}
for(j1=1;j1<=m;j1++)
{
s=0;
for(i1=1;i1<=n;i1++)
s=s+a[i1][j1];
if(s<0)
for(i1=1;i1<=n;i1++)
a[i1][j1]=a[i1][j1]*(-1);
}
s=0;
for(i1=1;i1<=n;i1++)
for(j1=1;j1<=m;j1++)
s=s+a[i1][j1];
if(s>smax)
smax=s;
for(i1=1;i1<=n;i1++)
for(j1=1;j1<=m;j1++)
a[i1][j1]=c[i1][j1];
}
f2<<smax;
f1.close();
f2.close();
return 0;
}