Cod sursa(job #2765329)

Utilizator AlexDianaAlexandrescu Diana AlexDiana Data 26 iulie 2021 14:03:49
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.54 kb
#include <fstream>

using namespace std;

ifstream cin("flip.in");
ofstream cout("flip.out");

int a[17][17];

int main() {
	int n,m;
  cin>>n>>m;
  for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++)
      cin>>a[i][j];
  if(n>m){
    int smin, splus;
    for(int j=1;j<=m;j++){
      smin=splus=0;
      for(int i=1;i<=n;i++){
        if(a[i][j]<0)
          smin+=a[i][j];
        else
          splus+=a[i][j];
      }
      if(splus<smin*(-1)){
        for(int i=1;i<=n;i++)
          a[i][j]=a[i][j]*(-1);
      }
    }

    for(int i=1;i<=n;i++){
      smin=splus=0;
      for(int j=1;j<=m;j++){
        if(a[i][j]<0)
          smin+=a[i][j];
        else
          splus+=a[i][j];
      }
      if(splus<smin*(-1)){
        for(int j=1;j<=n;j++)
          a[i][j]=a[i][j]*(-1);
      }
    }
  }
  else{
    int smin, splus;

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

    for(int j=1;j<=m;j++){
      smin=splus=0;
      for(int i=1;i<=n;i++){
        if(a[i][j]<0)
          smin+=a[i][j];
        else
          splus+=a[i][j];
      }
      if(splus<smin*(-1)){
        for(int i=1;i<=n;i++)
          a[i][j]=a[i][j]*(-1);
      }
    }
  }
  int suma=0;
  for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++)
      suma+=a[i][j];

  cout<<suma;

	return 0;
}