Cod sursa(job #1732312)

Utilizator TiiberiuBujor Tiberiu-Cosmin Tiiberiu Data 21 iulie 2016 13:57:37
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.76 kb
#include <cstdio>
#include <iostream>
using namespace std;
#define BIG 17
int a[BIG][BIG],N,M;
int suma_matrice(){
    int i,j,s=0;
    for(i=0;i<N;++i)
        for(j=0;j<M;++j)
            s+=a[i][j];
    return s;
}
int suma_linie(int linie){
    int sum=0;
    for(int i= 0;i<M;++i)
        sum+=a[linie][i];
    return sum;
    }
int suma_coloana(int coloana){
    int sum=0;
        for(int i= 0;i<N;++i)
            sum+=a[i][coloana];
    return sum;
    }
int comuta_linie(int linie){
    for(int i= 0;i<M;++i)
        a[linie][i] *= -1;
    return linie;
}
int comuta_coloana(int coloana){
     for(int i= 0;i<N;++i)
        a[i][coloana] *= -1;
     return coloana;
}
void afisare(){
    cout<<N<<" "<<M<<endl;
    for(int i=0;i<N;++i){
        for(int j=0;j<M;++j)
            cout<<a[i][j]<<" ";
        cout<<endl;
        }   
}
int main() {
    int i,j,SUM= 0;
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    scanf("%d %d",&N,&M);
    
    for(i=0;i<N;++i)
        for(j=0;j<M;++j)
            scanf("%d",&a[i][j]);
    if(N<=M){
      for(i=0;i<N;++i)
            if(suma_linie(i) >= suma_linie(comuta_linie(i)))
                comuta_linie(i);
      for(j=0;j<M;++j){
          if(suma_coloana(j) >= suma_coloana(comuta_coloana(j))){
                comuta_coloana(j);}
      }
    }
    else{
        for(j=0;j<M;++j){
          if(suma_coloana(j) >= suma_coloana(comuta_coloana(j))){
                comuta_coloana(j);}
      }
        for(i=0;i<N;++i)
            if(suma_linie(i) >= suma_linie(comuta_linie(i)))
                comuta_linie(i);
        
    }
    //comuta_coloana(1);
    //comuta_linie(2);
    //cout<<suma_linie(0);
    cout<<suma_matrice();
    return 0;
}