Pagini recente » Borderou de evaluare (job #2014761) | Cod sursa (job #2516813) | Cod sursa (job #1372902) | Cod sursa (job #2576125) | Cod sursa (job #1614905)
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int s[100],n,m,a[17][17],sum[17],sum1[17],tmax=-99999999;
void calcul()
{
int t=0,i,j;
for(i=1;i<=n+m;i++) sum1[i]=sum[i];
for(int i=1;i<=n+m;i++)
{
if(s[i]==1)
{
sum1[i]=-sum1[i];
if(i<=n)
for(j=1;j<=m;j++) sum1[j+n]=sum1[j+n]-2*a[i][j];
else
for(j=n+1;j<=n+m;j++) sum1[j]=sum1[j]-2*a[i][j-n];
}
}
for(i=n+1;i<=n+m;i++)
t=t+sum1[i];
if(t>tmax) tmax=t;
}
void genereaza(int k)
{
for(int i=0;i<=1;i++)
{
s[k]=i;
if(k==n+m) calcul();
else genereaza(k+1);
}
}
int main()
{ f>>n>>m;
int i,j;
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++) sum[i]=sum[i]+a[i][j];
for(j=1;j<=m;j++)
for(i=1;i<=n;i++) sum[j+n]=sum[j+n]+a[i][j];
genereaza(1);
g<<tmax<<'\n';
f.close();g.close();
return 0;
}