Cod sursa(job #1010658)

Utilizator krissu93FMI Tiugan Cristiana Elena krissu93 Data 15 octombrie 2013 13:19:31
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <iostream>
#include <fstream>

using namespace std;

int nrLinii, nrColoane;
int joc[17][17];


void get_data(){

ifstream in ("flip.in");

in >> nrLinii >> nrColoane;

for (int counter1 = 0; counter1 < nrLinii; counter1++)
    for (int counter2 = 0; counter2 < nrColoane; counter2++)
        in >> joc[counter1][counter2];

in.close();

}

int solve(){

int sol = 0;
int nr = 1 << nrLinii;
bool select[17];

cout<< nr<<" ";

for (int counter = 1; counter < nr; counter++){

    for (int counter2 = 0; counter2 < nrLinii; counter2++){
        select [ counter2 ] =  counter & (1<<counter2);
        //cout<< select[counter2]<<"\n";
    }

    int suma = 0 ;

    for (int counter2 = 0; counter2 < nrColoane; counter2++){

        int s = 0;
        for (int ok = 0; ok < nrLinii; ok++)
            if (select[ ok ]) s-= joc[ok][counter2]; // scad eleementul fiindca sunt pe o linie comutata
                         else s+= joc[ok][counter2]; // adun elementul fiidnca nu sunt pe o linie comutata

        if (s<0) suma += (-1) * s;
            else suma += s;
    }

    if (suma > sol) sol = suma;


}
return sol;
}


int main(){
get_data();

ofstream out("flip.out");

out<<solve();

out.close();
return 0;

}