Pagini recente » Cod sursa (job #1050838) | Cod sursa (job #1708154) | Cod sursa (job #2466147) | Cod sursa (job #144300) | Cod sursa (job #373976)
Cod sursa(job #373976)
#include<fstream.h>
long s,ss,smax,lin[20],col[20],a[20][20];
int n,m,i,k,j,kk,jj,x[20],y[20],uu,u,ii,S;
int main()
{
ifstream f("flip.in");
ofstream g("flip.out");
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
f>>a[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
lin[i]+=a[i][j];
for(j=1;j<=m;j++)
for(i=1;i<=n;i++)
col[j]+=a[i][j];
for(i=1;i<=n;i++)
smax+=lin[i];
S=smax;
for(i=1;i<=n;i++)
{
for(ii=0;ii<=i;ii++)
x[ii]=0;
k=1;
while(k>0)
{
x[k]++;
if(k==i)
{
s=S;
for(ii=1;ii<=k;ii++)
s-=2*lin[x[ii]];
for(j=1;j<=m;j++)
{
for(jj=0;jj<=j;jj++)
y[jj]=0;
kk=1;
while(kk>0)
{
y[kk]++;
if(kk==j)
{
ss=s;
for(jj=1;jj<=kk;jj++)
ss-=2*col[y[jj]];
uu=0;
while(y[kk-uu]==m-uu)uu++;
kk-=uu;
}
else
{
kk++;
y[kk]=y[kk-1];
}
if(ss>smax)smax=ss;
}
}
u=0;
while(x[k-u]==n-u)u++;
k-=u;
}
else
{
k++;
x[k]=x[k-1];
}
}
}
g<<smax;
return 0;
}