Pagini recente » Cod sursa (job #1870816) | Cod sursa (job #1081818) | Cod sursa (job #1179869) | Cod sursa (job #1837174) | Cod sursa (job #257814)
Cod sursa(job #257814)
#include<fstream.h>
long max=0;
int v[16][16],m,n,a,i,j;
int numaratoare[16],numaratoare2[16];
long var,t,s;
void start_nr2(int b){
int e;
if(b==n)
{var=t;
for(int x=0;x<n;x++)
if(numaratoare2[x]==1)var=var-2*v[x][j];
if(t>var)s=t;
else s=var;}
else for(e=0;e<2;e++)
{
numaratoare2[b]=e;
start_nr2(b+1);
}
}
void boom(){
t=0;s=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(numaratoare[j]==0)t+=v[i][j];
else t-=v[i][j];
start_nr2(0);
if(s>max)max=s;
}
}
void start_nr1(int a){
int r;
if(a==m)boom();
for(r=0;r<2;r++)
{
numaratoare[a]=r;
start_nr1(a+1);
}
}
int main(){
ifstream in("flip.in");
ofstream out("flip.out");
in>>n>>m;
for(int c=0;c<n;c++)
for(int d=0;d<m;d++)
{
in>>v[c][d];
max+=v[c][d];
}
start_nr1(0);
out<<max;
out.close();
in.close();
return 0;
}