Pagini recente » Cod sursa (job #940038) | Diferente pentru problema/kami intre reviziile 18 si 5 | Cod sursa (job #2203999) | Cod sursa (job #1185581) | Cod sursa (job #525245)
Cod sursa(job #525245)
#include <fstream>
using namespace std;
long z;
long max(long a[], long x)
{
long m1=a[1];
for (long i=2;i<=x;i++)
if (m1<a[i])
{
z=i;
m1=a[i];
}
return m1;
}
int main()
{
long int n,m,i,j,s,a[20][20],l[20],c[20],m1,m2;
ifstream f("flip.in");
ofstream g("flip.out");
f>>n>>m;
for (i=1;i<=n+1 || i<=m+1;i++)
{
l[i]=0;
c[i]=0;
}
for (i=1;i<=n;i++)
for (j=1;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);
m2=max(l,n);
if (m1>m2)
{
if (m1>0)
{
for (i=1;i<=n;i++)
{
a[i][z]=-a[i][z];
l[i]=l[i]-2*a[i][z];
c[z]=-c[z];
}
k=1;
}
}
else
if (m2>0)
{
for (j=1;i<=m;i++)
{
a[z][j]=-a[z][j];
c[j]=c[j]-2*a[z][j];
l[z]=-l[z];
}
k=1;
}
}
for (i=1;i<=n;i++)
s+=l[i];
g<<s;
}