Pagini recente » Cod sursa (job #782075) | Cod sursa (job #1938311) | Cod sursa (job #1894478) | Borderou de evaluare (job #1010309) | Cod sursa (job #1988306)
#include<cstdio>
using namespace std;
const int NMAX=20;
int matrix[NMAX][NMAX],mx[NMAX][NMAX];
bool flag[NMAX*NMAX];
void copiere(int n, int m){
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
if(flag[j]==true)
mx[i][j]=matrix[i][j]*-1;
else
mx[i][j]=matrix[i][j];
}
}
int main(){
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
int n,m,maxx=0;
bool ok=true;
scanf("%d%d", &n, &m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d", &matrix[i][j]);
while(ok){
int s=0;
copiere(n, m);
for(int i=1;i<=n;i++){
int sum=0;
for(int j=1;j<=m;j++)
sum+=mx[i][j];
if(sum<0)
s-=sum;
else
s+=sum;
}
if(s>maxx)
maxx=s;
int j=m;
while(j>0 && flag[j]==1){
j--;
flag[j+1]=0;
}
flag[j]=1;
if(j==0)
ok=false;
}
printf("%d", maxx);
return 0;
}