Cod sursa(job #3110)

Utilizator rchioreanRadu Chiorean rchiorean Data 20 decembrie 2006 21:40:45
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#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;
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<=255;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);}
//================vector caracterisitc=============
  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 = 0;
  for(i=1;i<=n;i++)
   for(j=1;j<=n;j++){s = s+ v[i][j]; v[i][j] = a[i][j];}
  if( s>max) max = s;

  }
 fclose(f);
 f = fopen("flip.out", "wt");
 write(f, "%lld", max);    fclose(f);
 return 0;
}