Pagini recente » Cod sursa (job #481820) | Cod sursa (job #1652397) | Cod sursa (job #2420463) | Cod sursa (job #2117322) | Cod sursa (job #1499581)
#include <iostream>
#include <stdio.h>
#include <climits>
using namespace std;
int flip[16][16];
int cpyflip[16][16];
int ls,cs;
int pow2(int cs){
int i,p=1;
for(i=0;i<cs;i++){
p<<=1;
}
return p;
}
void invlin(int nrlin){
int i;
for(i=0;i<cs;i++){
cpyflip[nrlin][i]*=-1;
}
}
void invcol(int nrcol){
int i;
for(i=0;i<ls;i++){
cpyflip[i][nrcol]*=-1;
}
}
int verif(int nrcol){
int i,s1=0;
for(i=0;i<ls;i++){
s1+=cpyflip[i][nrcol];
}
if(s1<0){
return 1;
}
return 0;
}
int main()
{ int i,j;
int ntry;
int temp;
int rez,s,maxim=INT_MIN;
int i1,j1;
int nrlin;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&ls,&cs);
for(i=0;i<ls;i++){
for(j=0;j<cs;j++){
scanf("%d",&flip[i][j]);
}
}
ntry=pow2(ls);
for(i=0;i<ntry;i++){
s=0;
for(i1=0;i1<ls;i1++){
for(j1=0;j1<cs;j1++){
cpyflip[i1][j1]=flip[i1][j1];
}
}
temp=i;
for(nrlin=0;temp;nrlin++){
if(temp%2==1){
invlin(nrlin);
}
temp/=2;
}
// //printam
// for(i1=0;i1<ls;i1++){
// for(j1=0;j1<cs;j1++){
// printf("%3d",cpyflip[i1][j1]);
// }
// printf("\n");
// }
// printf("\n\n");
//pe coloane
if(i==4){
temp++;
}
for(j=0;j<cs;j++){
rez=verif(j);
if(rez==1){
invcol(j);
}
}
for(i1=0;i1<ls;i1++){
for(j1=0;j1<cs;j1++){
s+=cpyflip[i1][j1];
}
}
if(s>maxim){
maxim=s;
}
}
printf("%d",maxim);
return 0;
}