Pagini recente » Cod sursa (job #2330143) | Cod sursa (job #311625) | Cod sursa (job #1001646) | Cod sursa (job #243263) | Cod sursa (job #1257673)
#include<iostream>
#include<fstream>
using namespace std;
void ShowMatrix(int matrix[16][16], int numColumn, int numLine);
int SumOfMatrix(int matrix[16][16], int numColumn, int numLine);
int main() {
int numColumn, numLines, matrix[16][16], sumMatrix, sumColumn[16], sumLines[16],posC,posL;
ifstream input("flip.in");
ofstream output("flip.out");
input >> numLines;
input >> numColumn;
for (int i = 0; i < 16; i++)
{
sumColumn[i] = 0;
sumLines[i] = 0;
}
for (int i = 0; i < numLines; i++) {
for (int j = 0; j < numColumn; j++) {
} input >> matrix[i][j];
}
for (int i = 0; i < numLines; i++) {
for (int j = 0; j < numColumn; j++) {
sumColumn[i] += matrix[j][i];
sumLines[i] += matrix[i][j];
}
}
bool okLines = true;
bool okColumn = true;
while (okLines==true || okColumn==true) {
okLines = false;
okColumn = false;
int minLine = sumLines[0];
for (int i = 0; i < numLines; i++) {
if (sumLines[i] < 0 && minLine > sumLines[i]) {
minLine = sumLines[i];
okLines = true;
posL = i;
}
}
int minColumn = sumColumn[0];
for (int i = 0; i < numColumn; i++) {
if (sumColumn[i] < 0 && minColumn > sumColumn[i]) {
minColumn = sumColumn[i];
okColumn = true;
posC = i;
}
}
if (okLines == true && okColumn == true) {
if (minLine < minColumn) {
for (int i = 0; i < numColumn; i++) {
matrix[posL][i] *= -1;
}
}
else {
for (int i = 0; i < numLines; i++) {
matrix[i][posC] *= -1;
}
}
}
else if (okLines == false && okColumn == true) {
for (int i = 0; i < numLines; i++) {
matrix[i][posC] *= -1;
}
}
else if (okLines == true && okColumn == false) {
for (int i = 0; i < numColumn; i++) {
matrix[posL][i] *= -1;
}
}
for (int i = 0; i < 16; i++) {
sumColumn[i] = 0;
sumLines[i] = 0;
}
for (int i = 0; i < numLines; i++) {
for (int j = 0; j < numColumn; j++) {
sumColumn[i] += matrix[j][i];
sumLines[i] += matrix[i][j];
}
}
}
cout << endl << "The maximum sum of the matrix is: " <<endl;
cout << SumOfMatrix(matrix, numColumn, numLines)<<endl;
input.close();
output.close();
return 0;
}
int SumOfMatrix(int matrix[16][16], int numColumn, int numLine) {
int sum = 0;
for (int i = 0; i < numLine; i++) {
for (int j = 0; j < numColumn; j++) {
sum += matrix[i][j];
}
}
return sum;
}