Pagini recente » Cod sursa (job #2440824) | Cod sursa (job #2062989) | Cod sursa (job #428829) | Cod sursa (job #2760549) | Cod sursa (job #209639)
Cod sursa(job #209639)
#include <stdio.h>
#include <values.h>
//using namespace std;
FILE *f,*g;
long a[17][17];
long sc[17],sl[17],suma=0-MAXLONG;
int i,j,n,m,ok;
long calculeaza_suma()
{
int i,j;
long tsum=0;
for(i=1;i<=n;i++)
tsum+=sl[i];
return tsum;
}
void invcol(int j)
{
int i;
for(i=1;i<=n;i++)
{
a[i][j]*=-1;
sl[i]+=2*a[i][j];
}
}
void invlin(int i)
{
int j;
for(j=1;j<=m;j++)
{
a[i][j]*=-1;
sc[j]+=2*a[i][j];
}
}
int main()
{
f=fopen("flip.in","r");
g=fopen("flip.out","w");
fscanf(f,"%d %d\n",&n,&m);
//citire
for(i = 1; i <= n;i++)
for(j = 1;j <= m;j++)
{
fscanf(f,"%ld",&a[i][j]);
sc[j]+=a[i][j];
sl[i]+=a[i][j];
}
ok=1;
while(ok)
{
ok=0;
for(j=1;j<=m;j++)
if(sc[j]<0)
{
invcol(j);
sc[j]=-sc[j];
}
for(i=1;i<=n && !ok;i++)
if(sl[i]<0)
ok=1;
if(ok)
for(i=1;i<=n;i++)
if(sl[i]<0)
{
invlin(i);
sl[i]=-sl[i];
}
for(j=1;j<=m && !ok;j++)
if(sc[j]<0)
ok=1;
}
fprintf(g,"%ld\n",calculeaza_suma());
fclose(f); fclose(g);
return 0;
}