Pagini recente » Cod sursa (job #1637180) | Cod sursa (job #1202509) | Cod sursa (job #1362958) | Cod sursa (job #1546586) | Cod sursa (job #812228)
Cod sursa(job #812228)
#include<fstream>
using namespace std;
int main(){
ifstream f("flip.in");
ofstream g("flip.out");
int m,n,i,j;
int v[17][17]={0};
int p[17][17]={0};
int ln[17]={0};
int col[17]={0};
f>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
f>>v[i][j];
p[i][j]=v[i][j];
}
int p1=1;
int p2=1;
int sum=0;
int sum2=0;
for(i=1;i<=n;i++)
p1=p1*2;
for(i=1;i<=m;i++)
p2=p2*2;
int k,kk;
for(i=1;i<=p1;i++){
for(k=1;k<=n;k++)
if (ln[k]==1)
for (kk=1;kk<=m;kk++)
v[k][kk]=-v[k][kk];
for (j=1;j<=p2;j++){
for (k=1;k<=m;k++)
if (col[k]==1)
for (kk=1;kk<=n;kk++)
v[kk][k]=-v[kk][k];
sum2=0;
for(int ii=1;ii<=n;ii++)
for(int jj=1;jj<=m;jj++)
sum2=sum2+v[ii][jj];
if (sum2>sum) sum=sum2;
for (k=1;k<=m;k++)
if (col[k]==1)
for (kk=1;kk<=n;kk++)
v[kk][k]=-v[kk][k];
j=1;
col[j]++;
while((col[j]>1)&&(col[j]<n)){
col[j]=0;
j=j+1;
col[j]++;
}
}
for(k=1;k<=n;k++)
if (ln[k]==1)
for (kk=1;kk<=m;kk++)
v[k][kk]=-v[k][kk];
j=1;
ln[j]++;
while((ln[j]>1)&&(col[j]<n)){
ln[j]=0;
j=j+1;
ln[j]++;
}
}
g<<sum;
return 0;
}