Cod sursa(job #2492158)

Utilizator PMI13Pop Marius Ionut PMI13 Data 13 noiembrie 2019 23:56:31
Problema Jocul Flip Scor 20
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void citire (int n,int m,int a[][17],FILE *in)
{
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            fscanf(in,"%d",&a[i][j]);
}
int sumax (int n,int m,int a[][17])
{
    int s=0,s1,s2;
    for(int i=0;i<n;i++)
    {
        s1=s2=0;
        for(int j=0;j<m;j++)
            if(a[i][j]>0)
                s1=s1+a[i][j];
            else
                s2=s2+a[i][j];
        if(abs(s2)>s1)
            for(int j=0;j<m;j++)
                a[i][j]=-a[i][j];
    }

    for(int j=0;j<m;j++)
    {
        s1=s2=0;
        for(int i=0;i<n;i++)
            if(a[i][j]>0)
                s1=s1+a[i][j];
            else
                s2=s2+a[i][j];
        if(abs(s2)>s1)
            for(int i=0;i<n;i++)
                a[i][j]=-a[i][j];
    }
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            s=s+a[i][j];
    return s;
}

int main()
{
    int m,n,a[17][17];
    int s;
    FILE *in = fopen("flip.in","rt");

    fscanf(in,"%d",&n);
    fscanf(in,"%d",&m);
    citire(n,m,a,in);
    fclose(in);
    s = sumax(n,m,a);
    FILE *out = fopen("flip.out","wt");
    fprintf(out,"%d",s);
    fclose(out);
    return 0;
}