Pagini recente » Cod sursa (job #2456201) | Cod sursa (job #2132290) | Cod sursa (job #1510568) | Cod sursa (job #81695) | Cod sursa (job #1363386)
#include <iostream>
#include <stdio.h>
using namespace std;
long a[17][17];
int cx[17],cy[17];
int x,y;
long Smax=-9999,Sinit;
void Afisare_Gen(){
for(int i=0; i<x; i++){
printf("%d",cx[i]);
}
printf(" ");
for(int i=0; i<y; i++){
printf("%d",cy[i]);
}
printf("\n");
}
void Sum_Max(){
int i,j,S=0;
for(i=0;i<y;i++){
for(j=0;j<x;j++){
//if(cx[i]!=cy[j]){
if(cx[j]==0 || cy[i]==0){
S-=a[i][j];
}
else
S+=a[i][j];
}
}
if(S>Smax)
Smax=S;
}
void Gen(int xsauy, int contor){
switch (xsauy) {
case 1 : {
if(contor >= x){
Gen(2,0);
}
else {
cx[contor]=0;
Gen(1,contor+1);
cx[contor]=1;
Gen(1,contor+1);
}
break;
}
case 2 : {
if(contor >= y){
Sum_Max();
//Afisare_Gen();
}
else {
cy[contor]=0;
Gen(2,contor+1);
cy[contor]=1;
Gen(2,contor+1);
}
break;
}
}
}
int main()
{
FILE *f=fopen("flip.in","r");
FILE *g=fopen("flip.out","w");
fscanf(f,"%d%d",&y,&x);
for(int i=0; i<y; i++){
for(int j=0; j<x; j++){
fscanf(f,"%d",&a[i][j]);
Sinit+=a[i][j];
}
}
Gen(1,0);
cout<<Smax;
fprintf(g,"%d",Smax);
fclose(f);
fclose(g);
return 0;
}