Pagini recente » Cod sursa (job #2899302) | Cod sursa (job #506763) | Cod sursa (job #2788056) | Cod sursa (job #2688091) | Cod sursa (job #2280253)
#include <iostream>
#include<stdio.h>
int a[16][16];
using namespace std;
int main() {
FILE *fin, *fout;
int i, mod, s1, s2, x, y, n, m, j, i1, j1, i2, j2, sum, sum1, sum2, sum3, max, nrl, nrc, summ1, summ2, summ3, summ4;
fin=fopen("flip.in", "r");
fout=fopen("flip.out", "w");
fscanf( fin, "%d %d", &n, &m);
sum=0;
for(i=1; i<=n; i++) {
for(j=1; j<=m; j++) {
fscanf( fin, "%d", &a[i][j]);
sum=sum+a[i][j];
}
}
nrl=(1<<n)-1;
max=0;
for(i1=0; i1<nrl; i1++) {
sum1=sum;
sum2=sum;
for(j1=0; j1<n; j1++) {
s1=0;
s2=0;
for(x=1; x<=m; x++) {
s1=s1+a[j1+1][x];
mod=a[j1+1][x]-2*a[j1+1][x];
s2=s2+mod;
}
if((i1>>j1)&1!=0) {
sum1=sum1-s1+s2;
}
else {
sum2=sum2-s1+s2;
}
}
nrc=(1<<m)-1;
for(i2=0; i2<nrc; i2++) {
summ1=sum1;
summ2=sum2;
summ3=sum1;
summ4=sum2;
for(j2=0; j2<m; j2++) {
s1=0;
s2=0;
for(y=1; y<=n; y++) {
s1=s1+a[y][j2+1];
mod=a[y][j2+1]-2*a[y][j2+1];
s2=s2+mod;
}
if((i2>>j2)&1!=0) {
summ1=summ1-s1+s2;
summ2=summ2-s1+s2;
}
else {
summ3=summ3-s1+s2;
summ4=summ4-s1+s2;
}
}
if(summ1>max) {
max=summ1;
}
if(summ2>max) {
max=summ2;
}
if(summ3>max) {
max=summ3;
}
if(summ4>max) {
max=summ4;
}
}
}
fprintf( fout, "%d", max);
fclose( fin );
fclose( fout );
return 0;
}