Cod sursa(job #1665555)
Utilizator | Data | 27 martie 2016 05:02:01 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.1 kb |
#include "fstream"
using namespace std;
int n,m;
int **p;
int *v;
int sum();
int main(){
ifstream in;
in.open("flip.in");
in>>n>>m;
p=new int*[n];
for(int i=0;i<n;i++){ //citire
p[i]=new int[m];
for(int j=0;j<m;j++){
in>>p[i][j];
}
}
in.close();
int max=0;
v=new int[m];
v[0]=-1;
int k=1;
while(k>=0){
v[k]=-1;
if(k==m){
if(max<sum()){
max=sum();
}
k--;
while(v[k]==1){
k--;
}
if(k>=0){
v[k]*=-1;
k++;
}
}else{
k++;
}
}
ofstream off;
off.open("flip.out");
off<<max;
off.close();
return 0;
}
int sum(){
int sum=0;
for(int i=0;i<n;i++){
int aux=0;
for(int j=0;j<m;j++){
aux+=p[i][j]*v[j];
}
if(aux<0){
aux*=-1;
}
sum+=aux;
}
return sum;
}