Pagini recente » Cod sursa (job #2682561) | Cod sursa (job #942003) | Cod sursa (job #1387640) | Cod sursa (job #382452) | Cod sursa (job #1466930)
#include <fstream>
using namespace std;
void min(int** tabla, int n, int m, int& pos_linie, int& pos_coloana)
{
int i, j;
int sum = 0;
int linie_min = 999999, coloana_min = 999999;
// LINIE MINIMA
for (i = 0; i < n; i++)
{
sum = 0;
for (j = 0; j < m; j++)
{
sum += tabla[i][j];
}
if (sum < linie_min)
{
linie_min = sum;
pos_linie = i;
}
}
// COLOANA MINIMA
for (i = 0; i < m; i++)
{
sum = 0;
for (j = 0; j < n; j++)
{
sum += tabla[j][i];
}
if (sum < coloana_min)
{
coloana_min = sum;
pos_coloana = i;
}
}
}
void comuta(int** tabla, int n, int m, int pos_coloana, int pos_linie)
{
for (int i = 0; i < n; i++)
{
tabla[i][pos_coloana] *= -1;
}
for (int j = 0; j < m; j++)
{
tabla[pos_linie][j] *= -1;
}
}
int finalSum(int** tabla, int n, int m)
{
int sum = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
sum += tabla[i][j];
}
}
return sum;
}
int main()
{
ifstream inFile("flip.in");
ofstream outFile("flip.out");
int n, m;
int pos_linie, pos_coloana;
inFile >> n >> m;
int coloana, linie; // trebuie comutat
int** tabla = new int*[n];
for (int i = 0; i < n; i++)
{
tabla[i] = new int[m];
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
inFile >> tabla[i][j];
}
}
min(tabla, n, m, pos_linie, pos_coloana);
comuta(tabla, n, m, pos_coloana, pos_linie);
outFile << finalSum(tabla, n, m);
outFile.flush();
return 0;
}