Pagini recente » Cod sursa (job #1342457) | Cod sursa (job #1858449) | Cod sursa (job #226965) | Cod sursa (job #804850) | Cod sursa (job #2947)
Cod sursa(job #2947)
#include <stdio.h>
#define N 16
long matrice[N][N];
int n,m;
/*******************************/
void citire(void)
{
FILE *f;
int i,j;
f=fopen("flip.in","rt");
fscanf(f,"%d %d\n",&n,&m);
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
fscanf(f,"%ld ",&matrice[i][j]);
fscanf(f,"\n");
}
fclose(f);
}
/*******************************/
long suma_linie(int x)
{
int i,rez=0;
for (i=0; i<m; rez+=matrice[x][i],i++);
return rez;
}
long suma_coloana(int x)
{
int i, rez=0;
for (i=0; i<n; rez+=matrice[i][x],i++);
return rez;
}
/*******************************/
void schimba_linie(int x)
{
int i;
for (i=0; i<m; matrice[x][i]*=-1, i++);
}
/*******************************/
void schimba_coloana(int x)
{
int i;
for (i=0; i<n; matrice[i][x]*=-1, i++);
}
/*******************************/
void afisare(void)
{
FILE *f;
int i,j;
long suma=0;
for (i=0; i<n; i++)
for (j=0; j<m; suma+=matrice[i][j],j++);
f=fopen("flip.out","wt");
fprintf(f,"%ld",suma);
fclose(f);
}
/*******************************/
int main(void)
{
int gata=0,i;
citire();
while (!gata)
{
gata=1;
for (i=0; i<n; i++)
if (suma_linie(i)<0)
{
gata=0;
schimba_linie(i);
}
for (i=0; i<m; i++)
if (suma_coloana(i)<0)
{
gata=0;
schimba_coloana(i);
}
}
afisare();
return 0;
}
/*******************************/