Pagini recente » Cod sursa (job #2668103) | Borderou de evaluare (job #1004052) | Cod sursa (job #2310590) | Cod sursa (job #2515859) | Cod sursa (job #2850509)
#include<fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int v[50][50], test[50][50];
int n, m;
int sumaMax;
void schimbaLinia(int i, int b[50][50])
{
for(int j = 1; j <= m; j++)
b[i][j] = -1 * b[i][j];
}
void schimbaColoana(int j, int b[50][50])
{
for(int i = 1; i <= n; i++)
b[i][j] = -1 * b[i][j];
}
int suma(int v[50][50])
{
int s = 0;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
s += v[i][j];
}
}
return s;
}
int main()
{
fin>>n>>m;
if(n < 1 || m > 16)
return 0;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
{
fin>>v[i][j];
sumaMax += v[i][j];
test[i][j] = v[i][j];
}
for(int j = 1; j <= m; j++)
{
schimbaColoana(j, test);
if(sumaMax < suma(test))
{
schimbaColoana(j, v);
sumaMax = suma(v);
}
else
schimbaColoana(j, test);
}
for(int i = 1; i <= n; i++)
{
schimbaLinia(i, test);
if(sumaMax < suma(test))
{
schimbaLinia(i, v);
sumaMax = suma(v);
}
else
schimbaLinia(i, test);
}
fout<<suma(v);
fin.close();
fout.close();
}