Cod sursa(job #61663)

Utilizator MciprianMMciprianM MciprianM Data 20 mai 2007 11:42:58
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.45 kb
#include<fstream>
using namespace std;
int suma(int a[][20], int n, int m){
  long int s=0;
  int i, j;
  for(i=0; i<n; i++)
    for(j=0; j<m; j++)
      s+=a[i][j];
  return s;
}
int scol(int a[][20], int n, int m, int col){
  int i, s=0;
  if(col>=0 && col<m)
    for(i=0; i<n;i++)
      s+=a[i][col];
    return s;
}
int slin(int a[][20], int n, int m, int lin){
  int j, s=0;
  if(lin>=0 && lin<n)
    for(j=0; j<m;j++)
      s+=a[lin][j];
    return s;
}
int main(){
  int m,n,a[20][20],i,j,max,s,c[20][20];
  ifstream f("flip.in");
  f>>n>>m;
  for(i=0; i<n;i++)
    for(j=0;j<m;j++)
      f>>a[i][j];
  f.close();
  for(i=0; i<n;i++)
    for(j=0;j<m;j++)
      c[i][j]=a[i][j];
  max=suma(a,n,m);
  for(i=0;i<n; i++){
    if(slin(a,n,m,i)<0)  
      for(j=0; j<m;j++)
        a[i][j]=-a[i][j];
  }
  s=suma(a,n,m);
  if(s>max)	max=s;
    for(j=0;j<m; j++){
      if(scol(a,n,m,j)<0) { 
        for(i=0; i<n;i++)
          a[i][j]=-a[i][j];
          s=suma(a,n,m);
          if(s>max)	max=s;}
  }
 s=suma(c,n,m);
          if(s>max)	max=s;
  for(j=0;j<m; j++){
    if(scol(c,n,m,j)<0)  
      for(i=0; i<m;i++)
        c[i][j]=-c[i][j];
  }
  s=suma(a,n,m);
  if(s>max)	max=s;
    for(i=0;i<n; i++){
      if(scol(c,n,m,i)<0){ 
        for(j=0; j<m;j++)
          c[i][j]=-c[i][j];
          s=suma(c,n,m);
          if(s>max)	max=s;}
  }
  ofstream g("flip.out");
  g<<max<<'\n';
  g.close();
  return 0;
}