Pagini recente » Cod sursa (job #1714811) | Cod sursa (job #2797684) | Cod sursa (job #1843105) | Cod sursa (job #1717347) | Cod sursa (job #107679)
Cod sursa(job #107679)
#include <fstream.h>
long long a[16][16];
int n,m;
long long sumal(int l)
{ int i;
long long s=0;
for (i=1;i<=m;i++) s+=a[l][i];
return s;
}
long long sumac(int c)
{ int i;
long long s=0;
for (i=1;i<=n;i++) s+=a[i][c];
return s;
}
void flipl(int l)
{ int i;
for (i=1;i<=m;i++) a[l][i]=-a[l][i];
}
void flipc(int c)
{ int i;
for (i=1;i<=n;i++) a[i][c]=-a[i][c];
}
long long abs(long long x)
{ if (x>0) return x;
return -x;
}
int main()
{ int i,j;
long long s;
ifstream f("flip.in");
f>>n>>m;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
f>>a[i][j];
f.close();
ofstream g("flip.out");
for (i=1;i<=n;i++)
if (sumal(i)<0) flipl(i);
for (j=1;j<=m;j++)
if (sumac(j)<0) flipc(j);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
{ if (sumal(i)-a[i][j]<0&&sumac(j)-a[i][j]<0)
{ flipl(i);
flipc(j);
}
else if (sumal(i)-a[i][j]<0&&abs(sumal(i)) > abs(sumac(j)))
{ flipl(i);
flipc(j);
}
else if (sumac(j)-a[i][j]<0&&abs(sumac(j)) > abs(sumal(i)))
{ flipl(i);
flipc(j);
}
}
s=0;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
s+=a[i][j];
g<<s;
g.close();
return 0;
}