Mai intai trebuie sa te autentifici.
Cod sursa(job #2014936)
Utilizator | Data | 24 august 2017 17:45:57 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.01 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n, m, i, j, v[18][18], b[18][18], x[35], k, c, rez;
int suma ()
{
for (int c = 1; c <= k; c++)
{
if (x[c] <= n)
for (int i = 1; i <= n; i++)
b[i][x[c]] *= -1;
else
for (int j = 1; j <= m; j++)
b[x[c]-n][j] *= -1;
}
int sum = 0;
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
{ sum += b[i][j]; b[i][j] = v[i][j]; }
return sum;
}
void back (int p)
{
for (int i = x[p-1] + 1; i <= n+m; i++)
{
x[p] = i;
if (p == k)
{
c = suma();
if (c > rez) rez = c;
}
else back(p + 1);
}
}
int main () {
ifstream fin("flip.in");
ofstream fout("flip.out");
fin >> n >> m;
for (i = 1; i <= n; i++)
for (j = 1; j <= m; j++)
fin >> v[i][j];
for (k = 1; k <= 32; k++)
back(1);
fout << rez << "\n";
}