Pagini recente » Cod sursa (job #2968803) | Cod sursa (job #2059896) | Cod sursa (job #974990) | Cod sursa (job #1761228) | Cod sursa (job #334359)
Cod sursa(job #334359)
#include<fstream>
using namespace std;
int l,c;
long a[20][20];
int SumaLin(int i)
{
int s=0;
for (int j=0;j<c;j++)
s+=a[i][j];
return s;
}
int SumaCol(int j)
{
int s=0;
for (int i=0;i<l;i++)
s+=a[i][j];
return s;
}
void FlipLin(int i)
{
for (int j=0;j<c;j++)
a[i][j]*=-1;
}
void FlipCol(int j)
{
for (int i=0;i<l;i++)
a[i][j]*=-1;
}
int main()
{
ifstream fin("flip.in");
fin>>l>>c;
int i,j;
for (i=0;i<l;i++)
for (j=0;j<c;j++)
fin>>a[i][j];
int ok,ko;
do
{
ko=0;
for (i=0;i<l;i++)
for (j=0;j<c;j++)
if ((a[i][j]>0)&&(SumaLin(i)+SumaCol(j)-2*a[i][j]<0))
{FlipLin(i);FlipCol(j);ko=1;}
do
{
ok=1;
for (i=0;i<l;i++)
if (SumaLin(i)<0) {FlipLin(i);ok=0;ko=1;}
for (j=0;j<c;j++)
if (SumaCol(j)<0) {FlipCol(j);ok=0;ko=1;}
}
while (ok==0);
}
while(ko==1);
long s=0;
for (i=0;i<l;i++)
for (j=0;j<c;j++)
s+=a[i][j];
ofstream fout("flip.out");
fout<<s<<"\n";
for (i=0;i<l;i++)
{
for (j=0;j<c;j++)
fout<<a[i][j]<<" ";
fout<<"\n";
}
return 0;
}