Pagini recente » Cod sursa (job #873051) | Cod sursa (job #2904758) | Cod sursa (job #275775) | Cod sursa (job #1788935) | Cod sursa (job #1777684)
#include <fstream>
#include<climits>
using namespace std;
ifstream cin ("flip.in");
ofstream cout ("flip.out");
int a[20][20],x[20],lin[20],n,m,maxim,v[50],sum[100];
void read ()
{ int s=0;
cin>>n>>m;
for(int i=1;i<=n;i++) { s=0;
for(int j=1;j<=m;j++)
cin>>a[i][j],s+=a[i][j],sum[0]+=a[i][j];
lin[i]=s;
}
}
void up_date (int k)
{ sum[k]=sum[k-1];
if(x[k]<=n)
sum[k]-=2*lin[x[k]];
else
{
for(int i=1;i<=n;i++)
{
if(v[i]!=0)
sum[k]+=2*a[i][x[k]-n];
else sum[k]-=2*a[i][x[k]-n];
}
}
}
void bkt ()
{
int k=1;
while(k)
{
if(x[k]<n+m)
{ x[k]++; up_date(k);
if(sum[k]>maxim) {maxim=sum[k];
v[x[k]]++; k++;
x[k]=x[k-1]; }
}
else k--,v[x[k]]=0;
}
}
void write ()
{
cout<<maxim;
}
int main()
{
read();
bkt();
write();
cin.close();
cout.close();
return 0;
}