Pagini recente » Cod sursa (job #1610445) | Cod sursa (job #851889) | Cod sursa (job #216846) | Cod sursa (job #133745) | Cod sursa (job #1010658)
#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;
}