Pagini recente » Cod sursa (job #2772209) | Cod sursa (job #2416169) | Cod sursa (job #520758) | Cod sursa (job #1897101) | Cod sursa (job #2149859)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
void citire(int&n,int&m,int mat[18][18])
{
in>>n>>m;
for(int i=1;i<=n;i++)
{
int s=0;
for(int j=1;j<=m;j++)
{
in>>mat[i][j];
s+=mat[i][j];
}
if (s<0)
for(int j=1;j<=m;j++)
mat[i][j] = -mat[i][j];
}
}
void afisare(int n,int m,int mat[18][18])
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<mat[i][j]<<' ';
cout<<endl;
}
}
int modificare1(int n,int m,int mat[18][18])
{
int sum=0;
for(int j=1;j<=m;j++)
{
int s=0;
for(int i=1;i<=n;i++)
s+=mat[i][j];
if(s<0)
{
for(int i=1;i<=n;i++)
mat[i][j] = -mat[i][j];
sum += -s;
}
else
sum += s;
}
return sum;
}
int modificare2(int n,int m,int mat[18][18])
{
int sum=0;
for(int i=1;i<=n;i++)
{
int s=0;
for(int j=1;j<=m;j++)
s+=mat[i][j];
if (s<0)
{
for(int j=1;j<=m;j++)
mat[i][j] = -mat[i][j];
sum +=-s;
}
else
sum +=s;
}
return sum;
}
int rez(int n,int m,int mat[18][18])
{
int sum1,sum2,ok=1;
sum2 = modificare1(n,m,mat);
do{
sum1 = sum2;
if(ok==1)
sum2=modificare2(n,m,mat);
else
sum2=modificare1(n,m,mat);
ok = -ok;
}while(sum1!=sum2);
return sum1;
}
int main()
{
int n,m,mat[18][18];
citire(n,m,mat);
out<<rez(n,m,mat);
return 0;
}