Pagini recente » Cod sursa (job #1479308) | Cod sursa (job #2399977) | Cod sursa (job #1473277) | tema | Cod sursa (job #856450)
Cod sursa(job #856450)
#include <stdio.h>
int n,m,a[16][16],si[16],sj[16];
void afissum() //afiseaza sumele
{
int i,j;
printf("si: ");
for (i=0; i<n; i++)
printf("%i ",si[i]);
printf("\nsj: ");
for (j=0; j<m; j++)
printf("%i ",sj[j]);
}
void rind(int i)
{
int j;
for (j=0; j<m; j++)
a[i][j]=-a[i][j];
si[i]=-si[i];
for (j=0; j<m; j++)
sj[j]=sj[j]+2*a[i][j];
}
void coloana(int j)
{
int i;
for (i=0; i<n; i++)
a[i][j]=-a[i][j];
sj[j]=-sj[j];
for (i=0; i<n; i++)
si[i]=si[i]+2*a[i][j];
}
int main()
{
FILE *f; int i,j,k,stot=0;
//
f=fopen("flip.in","r");
fscanf(f,"%i%i",&n,&m);
for (i=0; i<n; i++)
for (j=0; j<m; j++)
fscanf(f,"%i",&a[i][j]);
fclose(f);
// end cit
//vectorii cu sume
for (i=0; i<n; i++)
{
si[i]=0;
for (j=0; j<m; j++)
si[i]=si[i]+a[i][j];
}
for (j=0; j<m; j++)
{
sj[j]=0;
for (i=0; i<n; i++)
sj[j]=sj[j]+a[i][j];
}
// end sume
do
{
k=0;
for (i=0; i<n; i++)
if (si[i]<0) { rind(i); k=1; }
for (j=0; j<m; j++)
if (sj[j]<0) { coloana(j); k=1; }
}
while (k);
afissum();
for (i=0; i<n; i++)
for (j=0; j<m; j++)
stot=stot+a[i][j];
f=fopen("flip.out","w");
fprintf(f,"%i",stot);
fclose(f);
getch();
return 0;
}