Pagini recente » Diferente pentru implica-te/arhiva-educationala intre reviziile 223 si 87 | Cod sursa (job #1573772) | Cod sursa (job #1767936) | Cod sursa (job #2000563) | Cod sursa (job #351720)
Cod sursa(job #351720)
#include<stdio.h>
#include<iostream.h>
int n,m,flip[16][2];
long matrice[16][16],cm[16][16] ;
long long sumamax=0,suma;
long long insuma()
{
int i,j;
suma=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
suma+=cm[i][j];
return suma;
}
void flipit()
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cm[i][j]=matrice[i][j]*flip[i][0]*flip[j][1];
suma=insuma();
if(sumamax<suma)
sumamax=suma;
}
void back2()
{
for(int j=0;j<m;j++)
{
flipit();
flip[j][1]=-1;
flipit();
}
}
void back()
{
for(int i=0;i<n;i++)
{
back2();
flip[i][0]=-1;
back2();
}
}
main()
{
int i,j;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
cin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>matrice[i][j];
for(i=0;i<16;i++){
flip[i][0]=1;
flip[i][1]=1;}
back();
cout<<sumamax<<"\n";
}