Cod sursa(job #1986546)
| Utilizator | Data | 28 mai 2017 15:28:30 | |
|---|---|---|---|
| Problema | Jocul Flip | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.5 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
long int n, m, a[20][20], s_in;
void citire()
{
f>>n>>m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
f>>a[i][j];
}
int suma()
{
long int s=0;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
s=s+a[i][j];
return s;
}
void opus_l(int l)
{
for(int j=1; j<=m; j++)
a[l][j]=-a[l][j];
}
void opus_c(int c)
{
for(int i=1; i<=n; i++)
a[i][c]=-a[i][c];
}
void bk()
{
for(int i=1; i<=n; i++)
{
opus_l(i);
long int s=suma();
if(s>s_in)
{
s_in=s;
bk();
}
s=suma();
opus_c(i);
if(s>s_in)
{
s_in=s;
bk();
}
for(int j=1; j<=m; j++)
{
opus_c(j);
s=suma();
if(s>s_in)
{
s_in=s;
bk();
}
s=suma();
opus_l(j);
if(s>s_in)
{
s_in=s;
bk();
}
}
}
}
int main()
{
citire();
s_in=suma();
bk();
g<<s_in;
}
