Cod sursa(job #1172256)

Utilizator doghy1993Doaga Alin doghy1993 Data 17 aprilie 2014 04:10:02
Problema Jocul Flip Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 1.99 kb
#include<stdio.h>
#include<stdlib.h>
int** citire(int *n,int *m)
{
    int i=0,j=0;
    int **v=NULL;
    FILE *input=fopen("flip.in","r");
    if(input==NULL)
        printf("Eroare deschidere fisier");

    fscanf(input,"%i %i",n,m);
    v=(int**)malloc((*n)*sizeof(int*));
    for(i=0;i<*n;i++)
        *(v+i)=(int*)malloc((*m)*sizeof(int));
    for(i=0;i<*n;i++)
        for(j=0;j<*m;j++)
            fscanf(input,"%i",(*(v+i)+j));//Cum ce cand?
    fclose(input);
    return v;

}
int rezutat(int n,int m,int **v)
{
    int i=0,j=0;
    int suma=0;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            suma+=v[i][j];

    return suma;
}
void comutator(int n,int m,int **v)
{
    int i=0,j=0,k=0;
    int suma_negativa=0;
    int suma_pozitiva=0;
    for(i=0;i<n;i++)
    {
        suma_negativa=0;
        suma_pozitiva=0;
        for(j=0;j<m;j++)
        {
            if(v[i][j]<0)
                suma_negativa=suma_negativa+v[i][j];
            else
                suma_pozitiva=suma_pozitiva+v[i][j];
        }
        suma_negativa=suma_negativa*(-1);
        if(suma_negativa>suma_pozitiva)
        {
            for(k=0;k<m;k++)
                v[i][k]=v[i][k]*(-1);
        }
    }
    for(i=0;i<m;i++)
    {
        suma_negativa=0;
        suma_pozitiva=0;
        for(j=0;j<n;j++)
        {
            if(v[j][i]<0)
                suma_negativa=suma_negativa+v[j][i];
            else
                suma_pozitiva=suma_pozitiva+v[j][i];
        }
        suma_negativa=suma_negativa*(-1);
        if(suma_negativa>suma_pozitiva)
        {
            for(k=0;k<n;k++)
                v[k][i]=v[k][i]*(-1);
        }
    }

}
void procesare(int n,int m)
{
    int **v=NULL;
    int rez=0;
    v=citire(&n,&m);
    comutator(n,m,v);
    rez=rezutat(n,m,v);

    FILE *output=fopen("flip.out","w");
    fprintf(output,"%i",rez);

    fclose(output);

}
int main()
{

    int n=0,m=0;
    procesare(n,m);
    return 0;
}