Pagini recente » Cod sursa (job #2413458) | Cod sursa (job #1392917) | Cod sursa (job #1758798) | Cod sursa (job #2454781) | Cod sursa (job #36165)
Cod sursa(job #36165)
#include <stdio.h>
FILE *fin,*fout;
long int a[16][16],n,k[16][16],m;
int citire()
{int i,j;
fin=fopen("flip.in","r");
fscanf(fin,"%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++) fscanf(fin,"%d",&a[i][j]);
fclose(fin);
return 0;
}
int suma(long int x[16][16])
{ int i,j;
long int suma=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++) suma+=x[i][j];
return suma;
}
int copiere(int opt)
{int i,j;
if(opt==1)
{for(i=0;i<n;i++)
for(j=0;j<m;j++)
k[i][j]=a[i][j];
}
if(opt==2)
{for(i=0;i<n;i++)
for(j=0;j<m;j++)
a[i][j]=k[i][j];
}
}
int comutator()
{int i,j,mod=1;
copiere(1);
while(mod)
{ mod=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{k[i][j]=k[i][j]*-1;}
if(suma(k)>suma(a)){copiere(2);mod=1;}
else copiere(1);
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{k[j][i]=k[j][i]*-1;}
if(suma(k)>suma(a)){copiere(2);mod=1;}
else copiere(1);
}
}
return 0;
}
int scriere()
{
fout=fopen("flip.out","w");
fprintf(fout,"%d",suma(a));
fclose(fout);
return 0;
}
int main()
{citire();
comutator();
scriere();
return 0;
}