Pagini recente » Cod sursa (job #1978773) | Cod sursa (job #2872934) | Cod sursa (job #2644711) | Cod sursa (job #730597) | Cod sursa (job #525666)
Cod sursa(job #525666)
#include <fstream>
using namespace std;
bool x1[20],x2[20];//x1=col, x2=linii
long max(long a[], long x, long &z, bool xx[])
{
long m1=a[0];
for (long i=1;i<x;i++)
if (m1<a[i] && xx[i])
{
z=i;
m1=a[i];
}
return m1;
}
int main()
{
long int n,m,i,j,s=0,a[20][20],l[20],c[20],m1,m2,z1,z2;
ifstream f("flip.in");
ofstream g("flip.out");
f>>n>>m;
for (i=0;i<=n+1 || i<=m+1;i++)
{
l[i]=c[i]=0;
x1[i]=x2[i]=1;
}
for (i=0;i<n;i++)
for (j=0;j<m;j++)
{
f>>a[i][j];
c[j]=c[j]-a[i][j];
l[i]=l[i]-a[i][j];
}
int k=1;
while (k)
{
k=0;
m1=max(c,m,z1,x1);
m2=max(l,n,z2,x2);
if (m1>m2)
{
if (m1>=0)
{
x1[z1]=0;
for (i=0;i<n;i++)
{
a[i][z1]=-a[i][z1];
l[i]=l[i]-2*a[i][z1];
}
c[z1]=-c[z1];
k=1;
}
}
else
if (m2>=0)
{
for (j=0;j<m;j++)
{
x2[z2]=0;
a[z2][j]=-a[z2][j];
c[j]=c[j]-2*a[z2][j];
}
l[z2]=-l[z2];
k=1;
}
}
for (i=0;i<n;i++)
s-=l[i];
g<<s;
}