Pagini recente » Cod sursa (job #2326953) | Cod sursa (job #1914429) | Cod sursa (job #2350275) | Cod sursa (job #1627454) | Cod sursa (job #757578)
Cod sursa(job #757578)
#include <fstream>
using namespace std;
ifstream fin ( "flip.in");
ofstream fout ( "flip.out");
void back (int,int,int,int);
void testare ( int,int);
//void afisare ( int );
//void afisare1 ( int );
int maxim,s[50],sl[50],sc[50],a[16][16],cm=0;
int main()
{
int n,m,i,j;
fin>>n>>m;
for (i=0;i<n;i++)
for (j=0;j<m;j++)
{
fin>>a[i][j];
sl[i]=sl[i]+a[i][j];
}
for ( i=0;i<m;i++ )
for (j=0;j<n;j++ )
{
sc[i]=sc[i]+a[j][i];
}
back(0,n+m,n,m);
//afisare ( cm );
fout<<maxim;
fin.close();
fout.close();
return 0;
}
void back (int k, int n, int x ,int y)
{
int i=0;
for ( i=-1;i<=1;i++)
{
if (i!=0)
{
s[k]=i;
if ( k==x+y-1 )
{
//afisare1 (n);
testare(x,y);
//fout<<" diug\n";
}
else
back(k+1,n,x,y);
}
}
}
void testare ( int k, int p )
{
int i,j,maxi=0;
for ( i=0;i<k;i++)
for ( j=0;j<p;j++)
maxi=maxi+s[i]*s[k+j]*a[i][j];
if ( maxi>maxim)
maxim=maxi;
}