Pagini recente » Cod sursa (job #3255747) | Cod sursa (job #774753) | Cod sursa (job #1219729) | Cod sursa (job #720342) | Cod sursa (job #1614827)
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int a[17][17],v[33],maxi,n,m,i,s[33],u[33];
void calcul()
{
int j,i,suma=0;
for(i=1;i<=n+m;i++) u[i]=v[i];
for(i=1;i<=n+m;i++)
{
if(s[i]==-1)
{
if(i<=n)
{
u[i]=-v[i];
for(j=n+1;j<=m+n;j++)
u[j]=u[j]-a[i][j-n];
}
else
{
u[n+i]=-v[n+i];
for(j=1;j<=n;j++)
u[j]=u[j]-a[j][i-n];
}
}
}
for(i=1;i<=n;i++) suma+=u[i];
if(suma>maxi) maxi=suma;
}
void backtr(int k)
{
int i;
for(i=-1;i<=0;i++)
{
s[k]=i;
if(k==n+m) calcul();
else backtr(k+1);
}
}
int main()
{
f>>n>>m; int j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
f>>a[i][j];
v[i]+=a[i][j];
v[n+j]+=a[i][j];
}
backtr(1);
g<<maxi<<'\n';
f.close();
g.close();
return 0;
}