Cod sursa(job #2620953)

Utilizator Mihai.MocanuMihai mmm Mihai.Mocanu Data 29 mai 2020 23:28:03
Problema Jocul Flip Scor 10
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <stdlib.h>

int v[17][17];

int main(){
  int i,j,n,m,t,z,b,ma,x,s;
  FILE *fin,*fout;
  fin=fopen("flip.in","r");
  fout=fopen("flip.out","w");
  fscanf(fin,"%d%d",&n,&m);

  ma=0;
  x=0;
  for(i=0;i<n;i++){
    for(j=0;j<m;j++){
      fscanf(fin,"%d",&v[i][j]);
      ma+=v[i][j];
    }
  }
  b=ma;

  t=1<<n;
  for(z=0;z<t;z++){
    s=b;
    for(i=0;i<n;i++){
      if(((z>>i)&1)==1){
        for(j=0;j<n;j++){
          s-=v[j][i]*2;
        }
      }
    }
    if(s>ma){
      ma=s;
      x=z;
    }
  }

  z=x;
  for(i=0;i<n;i++){
    if(((z>>i)&1)==1){
      for(j=0;j<n;j++){
        v[j][i]*=-1;
      }
    }
  }

  b=ma;
  t=1<<m;
  for(z=0;z<t;z++){
    s=b;
    for(i=0;i<m;i++){
      if(((z>>i)&1)==1){
        for(j=0;j<m;j++){
          s-=v[i][j]*2;
        }
      }
    }
    if(s>ma){
      ma=s;
      x=z;
    }
  }

  fprintf(fout,"%d",ma);


  fclose(fin);
  fclose(fout);
  return 0;
}