Pagini recente » Cod sursa (job #825229) | Cod sursa (job #3357280) | Cod sursa (job #2052483) | Cod sursa (job #1044372) | Cod sursa (job #1294524)
#include <iostream>
#include <fstream>
#include <cmath>
#include <cstring>
using namespace std;
char v[17];
int sc[17];
int flip(int n,int m, int a[17][17],int mod[17][17])
{
int k=1,i,t=0,j,s=0,smax=0;
while(k<=ceil(pow(2,n)))
{
s=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
mod[i][j]=a[i][j];
}
}
t=0;
if(v[n]=='1')
{
t=1;
v[n]='0';
}
else
{
v[n]='1';
}
for(i=n-1;i>=1&&t==1;i--)
{
if(v[i]=='1')
{
v[i]='0';
}
else
{
v[i]='1';
t=0;
}
}
for(i=1;i<=n;i++)
{
if(v[i]=='1')
{
for(j=1;j<=m;j++)
{
mod[i][j]*=-1;
sc[j]+=mod[i][j];
}
}
else
{
for(j=1;j<=m;j++)
{
sc[j]+=mod[i][j];
}
}
}
for(j=1;j<=m;j++)
{
if(sc[j]<0)
{
s-=sc[j];
}
else
{
s+=sc[j];
}
}
if(s>smax)
{
smax=s;
}
k++;
memset(sc,0,sizeof(sc));
}
return smax;
}
int main()
{
int n,m,x,s;
ifstream f("flip.in");
ofstream g("flip.out");
f>>n>>m;
int a[17][17],mod[17][17];
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
{
f>>x;
a[i][j]=x;
}
}
g<<flip(n,m,a,mod);
return 0;
}