Cod sursa(job #336398)

Utilizator magicMaria Ionescu magic Data 31 iulie 2009 13:42:22
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<iostream>
#include<fstream>

using namespace std;

int main() {
  ifstream in("flip.in");
  ofstream out("flip.out");
  
  int N,M;
  in>>N>>M;
  
  int a[16][16], r[16], c[16];
  int sum = 0;

  for (int i = 0; i<N; i++) 
    r[i] = 0;
  for (int j = 0; j<M; j++)
    c[j] = 0;

  for (int i = 0; i<N; i++)
    for (int j = 0; j<M; j++) {
      in>>a[i][j];
      r[i] += a[i][j];
      c[j] += a[i][j];
      sum += a[i][j];
    }

  int minr = -1;
  int minc = -1;

  while ( (minr < 0) || (minc < 0) )  {
    minr = 0;
    minc = 0;

    int ii = -1;
    int jj = -1;

    for (int i = 0; i<N; i++) 
      if (r[i] < minr) {
	minr = r[i];
	ii = i;
      }
    for (int j = 0; j<M; j++)
      if (c[j] < minc) {
	minc = c[j];
	jj = j;
      }
    
    if (minc < minr) {
      c[jj] *= -1;
      sum += 2 * c[jj];
    }
    else {
      r[ii] *= -1;
      sum += 2* r[ii];
    }
  }

  out<<sum;
  in.close();
  out.close();
}