Pagini recente » Cod sursa (job #1826986) | Cod sursa (job #3178358) | Cod sursa (job #2449355) | Cod sursa (job #2286225) | Cod sursa (job #3146)
Cod sursa(job #3146)
#include <stdio.h>
#include <stdlib.h>
#define read fscanf
#define write fprintf
FILE *f;
long long k ,i, m, n,j,spoz, sneg,s,max,ssneg;
long v[16][16],a[16][16];
int main(void){
f = fopen("flip.in","rt");
read(f, "%lld%lld", &n, &m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++){ read(f, "%ld", &a[i][j]); v[i][j] = a[i][j];}
max = 0;
// ========terminam citirea============
for(k=0;k<=70224;k++){
for(i=16;i>=2;i--)
if((k>>i-1)&1==1){
for(j=1;j<=n;j++)v[j][i]=v[j][i]*(-1);}
//================terminam vector caracterisitc=============
ssneg = 0; s=0;
for(i=1;i<=n;i++){
spoz = 0; sneg = 0;
for(j=1;j<=m;j++)
if(v[i][j]>0)spoz = spoz + v[i][j];else sneg = sneg + abs(v[i][j]);
if(sneg>spoz)
for(j=1;j<=m;j++){v[i][j] = v[i][j] * (-1); s = s+v[i][j]; v[i][j] = a[i][j];}else{
for(j=1;j<=m;j++){ s = s + v[i][j]; v[i][j] = a[i][j];}}
ssneg = ssneg + sneg;
}
if(ssneg==0){f = fopen("flip.out", "wt"); write(f, "%lld", max); fclose(f); return 0;}
if( s>max) max = s;
}
fclose(f);
f = fopen("flip.out", "wt");
write(f, "%lld", max); fclose(f);
return 0;
}