Pagini recente » Cod sursa (job #2104409) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #409446) | Cod sursa (job #413667)
Cod sursa(job #413667)
#include<iostream.h>
#include<fstream.h>
#include<limits.h>
#define IN ifstream f("flip.in");
#define OUT ofstream g("flip.out");
#define INC f.close();
#define OUTC g.close();
int xx,yy,map[16][16];
int max=INT_MIN;
int flip[32];
int suma(){
int sum=0;
for(int y=0;y<yy;y++)
for(int x=0;x<xx;x++)
sum+=map[x][y]*flip[x]*flip[xx+y];
return sum;}
void rezolva(int i){
int sum;
if(i==xx*yy){
sum=suma();
if(max<sum)max=sum;}
else{
flip[i]=-1;
rezolva(i+1);
flip[i]=1;
rezolva(i+1);}}
void citeste(){
IN f>>yy>>xx;
for(int y=0;y<yy;y++)
for(int x=0;x<xx;x++)
f>>map[x][y];INC}
int main(){
citeste();
rezolva(0);
OUT g<<max;OUTC
return 0;}