Cod sursa(job #1006132)

Utilizator spadasinoIulian spadasino Data 6 octombrie 2013 14:49:29
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.82 kb
#include<iostream>
#include<stdio.h>
using namespace std;

 
void citire (int v[100][100], int n, int m)
{     
   int i,j; 
           
   for(i=1;i<=n;i++)
   for(j=1;j<=m;j++)
      cin>>v[i][j];
                       
            
 }
 
 
 void afisare (int v[100][100], int n, int m)
{     
   int i,j; 
           
   for(i=1;i<=n;i++)
   { for(j=1;j<=m;j++)
     cout<<v[i][j]<<" ";
     cout<<endl;  
   } 
                       
            
 }
 
 
 int flip_c (int v[100][100], int n, int m, int lin)
 {
   int suma = 0;  
   int j;        
             
   for(j=1;j<=m;j++)  
   v[lin][j] = 0 - v[lin][j];      
   
  
   for(j=1;j<=m;j++) 
   suma = suma + v[lin][j];
   
   
   for(j=1;j<=m;j++)  
   v[lin][j] = 0 - v[lin][j];      
   
   
   return suma;  
             
 }
 
  
 int flip_l (int v[100][100], int n, int m, int col)
 {
   int suma = 0;   
   int i;    
                   
   for(i=1;i<=n;i++)  
   v[i][col] = 0 - v[i][col];   
   
   
   for(i=1;i<=n;i++)     
   suma = suma +  v[i][col];
   
   
   for(i=1;i<=n;i++)  
   v[i][col] = 0 - v[i][col];   
   
   
   return suma;         
 }
 
 
int main()
{
   int v[100][100];
   int i,j,n,m,s_max,smax;
  
           
  freopen("flip.in","r",stdin);          
  freopen("flip.out","w",stdout);
   
  cin>>n>>m;
  citire(v,n,m);

  s_max = -999;      
  smax = -999;  
          
  for(i=1;i<=n;i++)
    if(flip_c (v, n, m, i) > s_max) s_max = flip_c (v, n, m, i);   
  
  
  for(j=1;j<=m;j++)
    if(flip_l (v, n, m, j) > smax) smax = flip_l (v, n, m, j); 
  
  /*
  if (smax > s_max) cout<<smax;
  if (smax == s_max) cout<<s_max;
  if (smax < s_max) cout<<s_max; 
  */
  
  cout<<smax+s_max;
          
  cout<<endl<<endl;
  //afisare(v,n,m);        
               
}