Pagini recente » Cod sursa (job #714950) | Cod sursa (job #3247225) | Cod sursa (job #2721997) | Cod sursa (job #886068) | Cod sursa (job #1013906)
#include <fstream>
using namespace std;
struct Tabla{
int n;
int m;
int a[16][16];
};
int linie[16];
long long sumaMaxima;
inline int max(int a, int b){
if(a > b){
return a;
}
return b;
}
void citireDate(Tabla &tabla){
ifstream fin("flip.in");
fin>>tabla.n>>tabla.m;
for(int i = 0; i < tabla.n;i++){
for(int j = 0;j < tabla.m;j++){
fin>>tabla.a[i][j];
}
}
fin.close();
}
void scriereDate(){
ofstream fout("flip.out");
fout<<sumaMaxima<<"\n";
fout.close();
}
void prelSol(Tabla &tabla){
long long suma = 0;
long long sumaLinie;
for(int i = 0;i < tabla.n;i++){
sumaLinie = 0;
for(int j = 0;j < tabla.m;j++){
sumaLinie += linie[j] * tabla.a[i][j];
}
suma += max(sumaLinie, -1*sumaLinie);
}
sumaMaxima = max(suma, sumaMaxima);
}
void backLinii(int k, int &n, Tabla &tabla){
if(k == n){
prelSol(tabla);
return;
}
for(int i = -1;i <= 1;i+=2){
linie[k] = i;
backLinii(k+1, n, tabla);
}
}
int main(int argc, char *argv[]){
Tabla tabla;
citireDate(tabla);
backLinii(0, tabla.n, tabla);
scriereDate();
return 0;
}