Cod sursa(job #639947)

Utilizator florinheGavrila Florin florinhe Data 24 noiembrie 2011 13:48:33
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
/**
Gigel a descoperit un nou joc pe care l-a numit "Flip". Acesta se
joaca pe o tabla dreptunghiulara de dimensiuni N*M care contine
numere intregi. Fiecare linie si fiecare coloana are un comutator
care schimba starea tuturor elementelor de pe acea linie sau
coloana, inmultindu-le cu -1. Scopul jocului este ca pentru o
configuratie data a tablei de joc sa se actioneze asupra liniilor
si coloanelor astfel incat sa se obtina o tabla cu suma elementelor
cat mai mare.*/
#include <fstream>
#include <iostream>
using namespace std;
int lin, col, smax,stivaLin[20],a[20][20],i,j;
ifstream f("flip.in");
ofstream fo("flip.out");
void maxnou(){
    int i,j,s,sum;
    sum=0;
    for(j=1;j<=col;j++){
        s=0;
        for(i=1;i<=lin;i++)
            s+=stivaLin[i]*a[i][j];
        s=s<0?-s:s;
        sum+=s;
    }
    if(smax<sum)smax=sum;
}
void back(int x){
    if(x==lin+1){
        maxnou();
        return ;
    }
    stivaLin[x]=-1;
    back(x+1);
    stivaLin[x]=1;
    back(x+1);
}
int main(){
    citire();
    back(1);
        fo<<smax<<endl;
    return 0;
}