Pagini recente » Diferente pentru utilizator/mgnt intre reviziile 2 si 3 | Monitorul de evaluare | Monitorul de evaluare | Diferente pentru problema/bombar intre reviziile 1 si 2 | Cod sursa (job #2506363)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m;
int MAT[16][16];
int suma=0;
int sl=0;
int sc=0;
void read(){
fin>>n>>m;
for(int i=0;i<n;i++){
for (int j=0;j<m;j++){
fin>>MAT[i][j];
}
}
}
int verificarel(int k){
sl=0;
for(int j=0;j<m;j++)
sl=sl+MAT[k][j];
int ss=sl*-1;
if(sl>ss)
return 0;
else
return 1;
}
int verificarec(int k){
sc=0;
for(int i=0;i<n;i++)
sc=sc+MAT[i][k];
int ss=sc*-1;
if(sc>ss)
return 0;
else
return 1;
}
void calc(){
for (int k=0;k<n;k++){
if(verificarel(k)){
for (int j=0;j<m;j++)
MAT[k][j]=MAT[k][j]*-1;
}
}
for (int k=0;k<m;k++){
if(verificarec(k)){
for (int i=0;i<n;i++)
MAT[i][k]=MAT[i][k]*-1;
}
}
}
void print(){
for(int i=0;i<n;i++){
for (int j=0;j<m;j++){
suma=suma+MAT[i][j];
}
}
fout<<suma;
}
int main()
{
read();
calc();
print();
return 0;
}