Pagini recente » Cod sursa (job #382369) | Cod sursa (job #601080) | Rating Ioana Delia Stirbu (DeliaStirbu) | Istoria paginii runda/123123/clasament | Cod sursa (job #1150435)
#include <stdio.h>
#include <stdlib.h>
int M[16][16], aux[32];
int n, m, smax;
void comuta(int id);
void citesteMat(FILE *f)
{
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
fscanf(f, "%d", &M[i][j]);
return;
}
#if 0
int sumCol(int idCol)
{
int s=0;
for(int i=0; i<n; i++)
s+=M[i][idCol];
return s;
}
int sumLin(int idLin)
{
int s=0;
for(int i=0; i<m; i++)
s+=M[idLin][i];
return s;
}
#endif
int sumMat()
{
int s=0;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
s+=M[i][j];
return s;
}
void comuta(int id)
{
if(id<n)
for(int i=0; i<m; i++) M[id][i]*=(-1);
else
for(int i=0; i<n; i++) M[i][id-n]*=(-1);
return;
}
void back(int k)
{
if(k==n+m)
{
int s=sumMat();
if(s>smax) smax=s;
}
else
{
back(k+1);
comuta(k);
back(k+1);
}
return;
}
int main()
{
FILE *fi, *fo;
fi=fopen("flip.in", "r");
fo=fopen("flip.out", "w");
fscanf(fi, "%d %d", &n, &m);
citesteMat(fi);
back(0);
fprintf(fo, "%d", smax);
fclose(fi);
fclose(fo);
return 0;
}