Pagini recente » Cod sursa (job #669987) | Cod sursa (job #758269) | Cod sursa (job #1098285) | Cod sursa (job #1682219) | Cod sursa (job #1462374)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
//void printMatrix(int **matrice, int N, int M) {
// for (int i = 0; i < N; i++) {
// for (int j = 0; j < M; j++) {
// printf("%d ",matrice[i][j]);
// }
// printf("\n");
// }
// printf("\n");
//}
void maxSumFliped(int **matrice,int N, int M){
int *sumaLinii;
sumaLinii = (int*) calloc (N,sizeof(int));
int *sumaCol = new int[M];
sumaCol = (int *) calloc(M,sizeof(int));
bool ok = false;
// bool col = false;
while (!ok){
ok = true;
// col = false;
for (int i = 0 ; i < N ; i ++){
for (int j = 0 ; j < M ; j++){
sumaLinii[i] += matrice[i][j];
sumaCol[j] += matrice[i][j];
}
if (sumaLinii[i] < 0){
ok = false;
for (int j = 0 ; j < M ; j ++){
matrice[i][j] *= -1;
}
}
}
// if (!ok){
// cout<<"Linii modificate"<<endl;
// printMatrix(matrice,N,M);
// }
for (int k = 0 ; k < M ; k ++){
if (sumaCol[k] < 0){
// col = true;
ok = false;
for (int i = 0 ; i < N ; i ++){
matrice[i][k] *= -1;
}
}
}
// if (col){
// cout<<"Coloane modificate"<<endl;
// printMatrix(matrice,N,M);
// }
}
int sum = 0;
for (int i = 0 ; i < N ; i++){
for (int j = 0 ; j < M ; j++){
sum+= matrice[i][j];
}
}
FILE *pFile = fopen("flip.out","w");
fprintf(pFile,"%d",sum);
}
int main (int argc , char *argv[]){
int N;
int M;
FILE *pFile = fopen("flip.in", "r");
fscanf(pFile,"%d %d",&N,&M);
int **matrice = new int*[N];
for (int i = 0 ; i < N ; i++){
matrice[i] = new int[M];
}
for (int i = 0 ; i < N ; i++){
for (int j = 0; j < M ; j++){
fscanf(pFile,"%d",&matrice[i][j]);
}
}
// printMatrix(matrice,N,M);
maxSumFliped(matrice,N,M);
}