Cod sursa(job #217560)

Utilizator bogdan32xMariesan Bogdan Emil bogdan32x Data 28 octombrie 2008 22:02:02
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 4.78 kb
#include<fstream.h>
#include<math.h>


long int n,m,a[15][15];

int main()
{ int i,j,max,lin,col,max2,lin2,col2;
  long int sum;
 sum=0;     
  ifstream f("flip.in");
  f>>n>>m;  
  if((n<=16)&&(n>=1)&&(m<=16)&&(m>=1))
     { for(i=0;i<=n;i++)
        {for(j=0;j<=m;j++)
          f>>a[i][j];
         } 
        f.close();
        max=0;
        lin=0;
        col=0; 
       for(i=0;i<=n;i++)  
         for(j=0;j<=m;j++)
            if(abs(a[i][j])>max) {
                                  max=abs(a[i][j]);
                                  lin=i;
                                  col=j;
                                  }                 
        max2=max;
        if(a[lin][col]<0)  { max2=a[lin-1][col];
                             if(a[lin-1][col-1]<max2) {
                                                       max2=a[lin-1][col];                
                                                       lin2=lin-1;
                                                       col2=col;
                                                       }
                                         else if(a[lin][col-1]<max2) 
                                                              {max2=a[lin][col-1];
                                                               lin2=lin;
                                                               col2=col-1;
                                                               }
                                                           else if(a[lin+1][col]<max2)
                                                                 {max2=a[lin+1][col];
                                                                  lin2=lin+1;
                                                                  col2=col;
                                                                  }
                                                               else if(a[lin][col+1]<max2) {max2=a[lin][col+1];
                                                                                             lin2=lin;
                                                                                             col2=col+1;}
                           }
                    else               
                            { max2=a[lin-1][col];
                             if(a[lin-1][col-1]>max2) {
                                                       max2=a[lin-1][col];                
                                                       lin2=lin-1;
                                                       col2=col;
                                                       }
                                         else if(a[lin][col-1]>max2) 
                                                              {max2=a[lin][col-1];
                                                               lin2=lin;
                                                               col2=col-1;
                                                               }
                                                           else if(a[lin+1][col]>max2)
                                                                 {max2=a[lin+1][col];
                                                                  lin2=lin+1;
                                                                  col2=col;
                                                                  }
                                                               else if(a[lin][col+1]>max2) {max2=a[lin][col+1];
                                                                                             lin2=lin;
                                                                                             col2=col+1;
                                                                                            }                                                                              
                                                                                            }
                  if((max2<0)&&(a[lin][col]<0))
                   {for(j=0;j<m;j++)
                     a[lin2][j]=a[lin2][j]*(-1);
                    for(i=0;i<n;i++)
                     a[i][col2]=a[i][col2]*(-1);
                      
                     }
                    else {if((max2<0)&&(a[lin][col]>0))
                   {
                     for(j=0;j<m;j++)
                     a[lin2][j]=a[lin2][j]*(-1);
                    for(i=0;i<n;i++)
                     a[i][col2]=a[i][col2]*(-1);
                      
                     }
                     }
    
}
                     for(i=0;i<n;i++)
                              for(j=0;j<m;j++)
                                     sum=sum+a[i][j];
                                                                                   

ofstream g("flip.out");
g<<sum;
return 0;
}