Pagini recente » Cod sursa (job #2773414) | Cod sursa (job #2521168) | Cod sursa (job #1986740) | Cod sursa (job #454829) | Cod sursa (job #971013)
Cod sursa(job #971013)
#include <iostream>
#include <fstream>
using namespace std;
int n,m, st[20][20], st2[20][20], maxs = 0;
long int a[20][20];
void verif(int nr) {
if (nr > maxs) maxs = nr;
}
int suma() {
int i, j, s=0;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++) {
if (st2[i][1]==1) a[i][j]= a[i][j]*(-1);
if (st[1][j]==1) a[i][j]= a[i][j]*(-1);
s = s + a[i][j];
}
return s;
}
void back2(int t) {
st2[t][1]=-1;
while (t>0) {
if (st2[t][1]<1) {
st2[t][1]++;
if (t == n) {
verif(suma());
}
else {
t++;
st2[t][1]=-1;
}
}
else t--;
}
}
void back(int k) {
st[1][k]=-1;
while (k>0) {
if (st[1][k]<1) {
st[1][k]++;
if (k == m) back2(1);
else {
k++;
st[1][k]=-1;
}
}
else k--;
}
}
int main () {
ifstream f("flip.in");
ofstream g("flip.out");
int i,j;
f>>n;
f>>m;
for (i=1;i<=n;i++)
for(j=1;j<=m;j++)
f>>a[i][j];
back(1);
g<<maxs;
f.close();
g.close();
return 0;
}