Pagini recente » Cod sursa (job #2787573) | Autentificare | Cod sursa (job #2952221) | Cod sursa (job #1585667) | Cod sursa (job #937090)
Cod sursa(job #937090)
#include<stdio.h>
#include<math.h>
void main()
{
FILE*f=fopen("flip.in","r"),*g=fopen("flip.out","w");
int M,N,ok,i,j;
///introducere nr linii,coloane
fscanf(f,"%d",&M);
fscanf(f,"%d",&N);
if(N<1||N>16||M<1||M>16)
{
printf("\nErorare introducere!\nReintroduceti! ");
return;
}
long int mat[15][15];
//citesc matricea
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
fscanf(f,"%d",&mat[i][j]);
if(mat[i][j]<-1000000||mat[i][j]>1000000)
{
printf("Eoare introducere!\nReintroduceti!\n");
return;
}
}
//aflu config optima
int poz,neg;
do
{
ok=1;
//pe linii
for(i=0;i<M;i++)
{
poz=0;
neg=0;
for(j=0;j<N;j++)
{
if(mat[i][j]>=0) poz+=mat[i][j];
else
neg+=abs(mat[i][j]);
}
if(poz<neg)
{
ok=0;
for(j=0;j<N;j++)
mat[i][j]*=(-1);
}
}
//coloane
for(j=0;j<N;j++)
{
poz=0;
neg=0;
for(i=0;i<M;i++)
{
if(mat[i][j]>=0) poz+=mat[i][j];
else
neg+=abs(mat[i][j]);
}
if(poz<neg)
{
ok=0;
for(i=0;i<M;i++)
mat[i][j]*=(-1);
}
}
}while(ok==0);
//aflu suma max
int suma=0;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
suma+=mat[i][j];
fprintf(g,"%d",suma);
}