Pagini recente » Cod sursa (job #1148582) | Cod sursa (job #2191116) | Cod sursa (job #3210881) | Cod sursa (job #3141081) | Cod sursa (job #1169248)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int a[21][21],n,m,summax,sumtot,s[21][21];
void Schimbalin(int lin){
int i;
for(i = 1; i <= m; i++)
a[lin][i]*=-1;
}
void Schimbacol(int col){
int i;
for(i = 1; i <= n; i++)
a[i][col]*=-1;
}
int Calc(){
int sum,i,j;
sum=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
sum+=a[i][j];
return sum;
}
void Solvecol(int k)
{
int i;
if(k == m+1)
;
else
for(i=1;i<=2;i++)
{
if(i==1)
{
if(Calc() > summax)
summax = Calc();
Solvecol(k+1);
}
else
{
Schimbacol(k);
if(Calc() > summax)
summax = Calc();
else Schimbacol(k);
Solvecol(k+1);
}
}
}
void Flip(int k)
{
int i,j,q;
if(k == n+1)
{
//cout << Calc()<<"\n";
}
else
{
for(i=1;i<=2;i++)
{
if(i == 1)
{
if(Calc() > summax)
summax = Calc();
Solvecol(1);
Flip(k+1);
}
else
{
Schimbalin(k);
if(Calc() > summax)
summax = Calc();
else Schimbalin(k);
Solvecol(1);
Flip(k+1);
}
}
}
}
int main(){
int i,j;
fin >> n >> m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{fin >> a[i][j];summax+=a[i][j];}
fin.close();
Flip(1);
fout << summax << "\n";
fout.close();
return 0;
}