Pagini recente » Cod sursa (job #162237) | Cod sursa (job #1762797) | Cod sursa (job #2370870) | Cod sursa (job #2449484) | Cod sursa (job #1005744)
#include <fstream>
#include <cstdlib>
using namespace std;
void readData(int matrix[17][17], int &n, int &m){
ifstream fin("flip.in");
fin>>n>>m;
for(int i = 0;i < n;i++)
for(int j = 0;j < m;j++)
fin>>matrix[i][j];
fin.close();
}
int findBestSum(int matrix[17][17], int n, int m){
int sLocal1, sLocal2;
int sTotal1 = 0;
for(int i = 0;i < n;i++){
sLocal1 = 0;
sLocal2 = 0;
for(int j = 0;j < m;j++){
sLocal1 += -1*matrix[i][j];
sLocal2 += matrix[i][j];
}
if(sLocal1 > sLocal2){
for(int j = 0;j < m;j++)
matrix[i][j] *= -1;
sTotal1 += sLocal1;
}else
sTotal1 += sLocal2;
}
int sTotal2 = 0;
for(int j = 0;j < m;j++){
sLocal1 = 0;
sLocal2 = 0;
for(int i = 0;i < n;i++){
sLocal1 += -1*matrix[i][j];
sLocal2 += matrix[i][j];
}
if(sLocal1 > sLocal2)
sTotal2 += sLocal1;
else
sTotal2 += sLocal2;
}
int sTotal = sTotal1 + 2*abs(sTotal1-sTotal2);
return sTotal;
}
void writeData(int x){
ofstream fout("flip.out");
fout<<x;
fout.close();
}
int main()
{
int gameBoard[17][17];
int rows, columns;
readData(gameBoard, rows, columns);
int result = findBestSum(gameBoard, rows, columns);
writeData(result);
return 0;
}