Pagini recente » Cod sursa (job #2568952) | Monitorul de evaluare | Cod sursa (job #1757459) | Cod sursa (job #405580) | Cod sursa (job #2324586)
#include <iostream>
#include <fstream>
int main()
{
std::ifstream fin("flip.in");
unsigned int N, M;
fin >> N >> M;
int table[N][M];
for(unsigned int i = 0; i < N; i++)
for(unsigned int j = 0; j < M; j++)
fin >> table[i][j];
fin.close();
int minimum = 2147483647, sum, result_prev = 0;
unsigned int x = 0, y = 0;
for(unsigned int i = 0; i < N; i++)
for(unsigned int j = 0; j < M; j++)
result_prev += table[i][j];
for(unsigned int i = 0; i < N; i++)
{
for(unsigned int j = 0; j < M; j++)
{
sum = 0;
for(unsigned int r = 0; r < N; r++)
sum += table[r][j];
for(unsigned int c = 0; c < M; c++)
sum += table[i][c];
if(sum < minimum)
{
minimum = sum;
x = i;
y = j;
}
}
}
for(unsigned int i = 0; i < N; i++)
table[i][y] *= -1;
for(unsigned int j = 0; j < M; j++)
table[x][j] *= -1;
int result = 0;
for(unsigned int i = 0; i < N; i++)
for(unsigned int j = 0; j < M; j++)
result += table[i][j];
std::ofstream fout("flip.out");
fout << ((result_prev > result) ? result_prev : result);
fout.close();
return 0;
}