Pagini recente » Cod sursa (job #2877816) | Cod sursa (job #83115) | Cod sursa (job #776590) | Cod sursa (job #2790160) | Cod sursa (job #1418444)
#include <iostream>
#include <fstream>
using namespace std;
struct flip
{
int p,m;
};
flip sum[33];
int sum_max,n,m,sum_initial,a[17][17],c[33];
void generare()
{
sum_max=sum_initial;
int ok=0,i,x;
while(ok==0)
{
x=sum_initial; for(i=1;i<=m+n;i++)if(c[i]==1)x=x-sum[i].p+sum[i].m;
if(x>sum_max)sum_max=x; i=n+m;
while(c[i]==1&&i>=1)
{ c[i]=0; i--; }
if(i==0)ok=1;
else
c[i]=1;
}
}
ifstream f("flip.in");
ofstream g("flip.out");
int main()
{
f>>n>>m; int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
f>>a[i][j]; sum_initial+=a[i][j];
sum[i].p+=a[i][j];
sum[i].m-=a[i][j];
}
for(j=n+1;j<=n+m;j++)
for(i=1;i<=n;i++)
{ sum[j].p+=a[i][j-n];
sum[j].m-=a[i][j-n];
}
generare();
g<<sum_max;
return 0;
}