Cod sursa(job #711340)

Utilizator venom4u31Manea Constantin venom4u31 Data 11 martie 2012 22:49:54
Problema Jocul Flip Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <stdio.h>
#include <stdlib.h>

void flipcol(int a[][17], int j, int m)
{
    int i;
    for(i=1;i<=m;i++)
        a[i][j]*=-1;
}

void fliplin(int a[][17], int i, int n)
{
    int j;
    for(j=1;j<=n;j++)
        a[i][j]*=-1;
}

int sumcol(int a[][17], int j, int m)
{
    int i, s=0;
    for(i=1;i<=m;i++)
        s+=a[i][j];
    return s;
}

int sumlin(int a[][17], int i, int n)
{
    int j, s=0;
    for(j=1;j<=n;j++)
        s+=a[i][j];
    return s;
}

int main()
{
    FILE *f, *g;
    f=fopen("flip.in", "r+t");
    g=fopen("flip.out", "r+t");
    int m, n, i, j, a[17][17], c=1;
    fscanf(f, "%i%i", &m, &n);
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            fscanf(f, "%i", &(a[i][j]));
    while(c)
    {
        c=0;
        for(i=1;i<=m;i++)
            if(sumlin(a, i, n)<0)
            {
                fliplin(a, i, n);
                c++;
            }
        for(j=1;j<=n;j++)
            if(sumcol(a, j, n)<0)
            {
                flipcol(a, j, m);
                c++;
            }
    }
    c=0;
    for(i=1;i<=m;i++)
        c+=sumlin(a, i, n);
    fprintf(g, "%i", c);
    return 0;
}