Pagini recente » Monitorul de evaluare | Rating Samson Theodor (Samson.Theodor) | Cod sursa (job #56687) | Monitorul de evaluare | Cod sursa (job #962806)
Cod sursa(job #962806)
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int tab[18][18], lin[18], col[18];
int main()
{
int n, m, i, j, l=-1, c=-1, s, smax=-2000000000, liml, limc;
f>>n>>m;
for(i=1;i<=n;i++) for(j=1;j<=m;j++) f>>tab[i][j];
liml=pow(2,n);
limc=pow(2,m);
while(l<liml) {
l++;
while(c<limc) {
c++;
s=0;
for(i=1;i<=n;i++) if(l & (1<<(i-1))) lin[i]=-1;
else lin[i]=1;
for(i=1;i<=m;i++) if(c & (1<<(i-1))) col[i]=-1;
else col[i]=1;
for(i=1;i<=n;i++) for(j=1;j<=m;j++) s+=tab[i][j]*lin[i]*col[j];
if(s>smax) smax=s;
}
}
g<<smax;
f.close();
g.close();
return 0;
}