Pagini recente » Cod sursa (job #2714630) | Cod sursa (job #1385028) | Cod sursa (job #527882) | Cod sursa (job #1870607) | Cod sursa (job #52931)
Cod sursa(job #52931)
#include <fstream>
std::ifstream f1("flip.in");
std::ofstream f2("flip.out");
long a[16][16], sMax;
int n, m;
void rez(int lin, long suma);
int main()
{
int i, j;
f1>>n>>m;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
f1>>a[i][j];
i=0;
sMax=-16000000;
rez(0, 0);
f2<<sMax;
f1.close();
f2.close();
return 0;
}//main
void rez(int lin, long suma)
{
int i, j;
long s, temp, t;
s=0;
for (i=0; i<m; i++)
s+=a[lin][i];
if (lin<(n-1))
{
rez(lin+1, suma+s);
for (i=0; i<m; i++)
a[lin][i]*=-1;
rez(lin+1, suma-s);
for (i=0; i<m; i++)
a[lin][i]*=-1;
}//if
else
{
temp=suma+s;
for (j=0; j<m; j++)
{
t=0;
for (i=0; i<n; i++)
t+=a[i][j];
if (t<0)
temp-=2*t;
}//for i
if (temp>sMax)
sMax=temp;
for (i=0; i<m; i++)
a[lin][i]*=-1;
temp=suma-s;
for (j=0; j<m; j++)
{
t=0;
for (i=0; i<n; i++)
t+=a[i][j];
if (t<0)
temp-=2*t;
}//for i
if (temp>sMax)
sMax=temp;
}//else
}//rez