Cod sursa(job #284074)

Utilizator cvicentiuCiorbaru Vicentiu Marian cvicentiu Data 20 martie 2009 22:39:21
Problema Jocul Flip Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.76 kb
#include <fstream>   
long long a[18][18];   
#define a (a-1)   
long long a2[18][18];   
#define a2 (a2-1)   
long long m,n;   
long long st[20];   
#define st (st-1)   
long long suma;   
using namespace std;   
int citire(){   
    int i,j;   
    ifstream fin ("flip.in");   
    fin>>n>>m;   
    for (i=1;i<=n;i++)   
        for (j=1;j<=m;j++)   
            fin>>a[i][j];   
    return 0;   
}   
  
int compara(){   
long long i,j,h;   
long long vert;   
long long sumasec;   
sumasec=0;   
for (i=1;i<=n;i++)   
        for (j=1;j<=m;j++)   
            if (st[i]==1){a2[i][j]=a[i][j];}   
               else {a2[i][j]=a[i][j]*(-1);}   
for (j=1;j<=m;j++){   
    vert=0;   
    for (i=1;i<=n;i++){   
        vert +=a2[i][j];   
        }      
       
    if (vert<0){for (h=1;h<=n;h++){   
                    a2[h][j]=a2[h][j]*-1;   
                    }   
    }   
  
}   
for (i=1;i<=n;i++)   
    for (j=1;j<=m;j++){   
        sumasec += a2[i][j];   
}   
if (sumasec>suma){   
                  suma=sumasec;}   
return 0;   
}   
  
int back(){   
    int k;   
    k=1;   
    while (k!=0){   
               st[k]++;     
              if (k==n){compara();}   
                 
              if (st[k]<3){   
                           if (k==n){    st[k]++;}   
                           else k++;   
                           }   
                 else {   
                      st[k]=0;                         
                      k--;          
              }   
    }   
return 0;   
}   
  
int scriere(){   
    ofstream fout("flip.out");   
    fout<<suma;   
return 0;   
}   
  
int main(){   
    citire();   
    back();   
    scriere();   
    return 0;   
       
}