Pagini recente » Cod sursa (job #370816) | Cod sursa (job #236130) | Cod sursa (job #158639) | Cod sursa (job #2502188) | Cod sursa (job #142994)
Cod sursa(job #142994)
#include<fstream>
using namespace std;
//#include<iomanip.h>
ifstream f("flip.in");
ofstream g("flip.out");
int n,m,mat[5][3],mm[5][3],s[10];
void citire()
{f>>n>>m;
int i,j;
for (i=0;i<n;i++)
for (j=0;j<m;j++)
f>>mat[i][j];
}
void afisare()
{int i;
for (i=0;i<m;i++)
g<<s[i]<<" ";
g<<endl;
}
void flip(int max)
{int i,j;
for (i=0;i<m;i++)
if (s[i]==2)
for (j=0;j<n;j++)
mm[j][i]=-mat[j][i];
else
for (j=0;j<n;j++)
mm[j][i]=mat[j][i];
/* for (i=m;i<m+n;i++)
if (s[i]==2)
for (j=0;j<m;j++)
mm[i][j]=-mat[i][j];
else
for (j=0;j<m;j++)
mm[i][j]=mat[i][j];
*/
int sum;
for (i=0;i<n;i++)
{sum=0;
for (j=0;j<m;j++)
sum+=mm[i][j];
if (sum<0)
for (j=0;j<m;j++)
mm[i][j]=-mm[i][j];
}
sum=0;
for (i=0;i<n;i++)
for (j=0;j<m;j++)
sum+=mm[i][j];
if (sum>max) max=sum;
/*
for (i=0;i<m;i++)
g<<s[i]<<" ";
g<<endl;
for (i=0;i<n;i++)
{for (j=0;j<m;j++)
g<<setw(3)<<mm[i][j];
g<<endl;
}
g<<endl;
*/
}
void back(int max)
{int k=0;
s[k]=0;
while (k>=0)
if (s[k]<2)
{s[k]++;
if (k==m-1) flip(max);
else s[++k]=0;
}
else k--;
}
int main()
{
citire();
int max=-32000;
back(max);
g<<max;
/*
int i,j;
for (i=0;i<n;i++)
{for (j=0;j<m;j++)
g<<mat[i][j]<<" ";
g<<endl;
}
*/
return 0;
}