Cod sursa(job #2828611)

Utilizator Remus.RughinisRemus Rughinis Remus.Rughinis Data 7 ianuarie 2022 17:43:17
Problema Jocul Flip Scor 30
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <stdio.h>
#include <stdlib.h>
#define NMAX 16
#define MMAX 15

int a[NMAX][MMAX];

int n,m,max;
void bkt(int i){
  int j,s;

  if(i == n+m){
    s = 0;
    for(i = 0; i < n; i++){
      for(j = 0; j < m; j++)
        s += a[i][j];
    }

    if(s > max){
      max = s;
    }

  } else{
    if(i < n){
      for(j = 0; j < m; j++)
        a[i][j] = -a[i][j];

      bkt(i+1);

      for(j = 0; j < m; j++)
        a[i][j] = -a[i][j];

    } else{
      for(j = 0; j < n; j++)
        a[j][i-n] = -a[j][i-n];

      bkt(i+1);

      for(j = 0; j < n; j++)
        a[j][i-n] = -a[j][i-n];
    }

    bkt(i+1);
  }
}

int main(){
  int i,j;
  FILE *fin, *fout;

  fin = fopen("flip.in","r");
  fscanf(fin,"%d%d",&n,&m);

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

  fclose(fin);

  max = 0;
  bkt(0);

  fout = fopen("flip.out","w");
  fprintf(fout,"%d\n",max);
  fclose(fout);

  return 0;
}