Cod sursa(job #593620)

Utilizator Athena99Anghel Anca Athena99 Data 3 iunie 2011 19:12:00
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <stdio.h>

int f[17][17],x[17][17];

int main()
{
    int n=0,m=0,i=0,j=0,s=0,k=0,m1=0,m2=0;
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    scanf("%d%d",&n,&m);
    for (i=0; i<n; ++i)
    for (j=0; j<m; ++j) {scanf("%d",&f[i][j]);x[i][j]=f[i][j];}
    for (i=0; i<m; ++i)
    {
        s=0;k=0;
        for (j=0; j<n; ++j)
        {
            s+=f[j][i];
            k-=f[j][i];
        }
        if (k>s) for (j=0; j<n; ++j) f[j][i]=f[j][i]-2*f[j][i];
    }
    for (i=0; i<n; ++i)
    {
        s=0;k=0;
        for (j=0; j<m; ++j)
        {
            s+=f[i][j];
            k-=f[i][j];
        }
        if (k>s) for (j=0; j<n; ++j) f[i][j]=f[i][j]-2*f[i][j];
    }
    m1=0;
    for (i=0; i<n; ++i)
    for (j=0; j<m; ++j) m1+=f[i][j];
    for (i=0; i<n; ++i)
    {
        s=0;k=0;
        for (j=0; j<m; ++j)
        {
            s+=x[i][j];
            k-=x[i][j];
        }
        if (k>s) for (j=0; j<n; ++j) x[i][j]=x[i][j]-2*x[i][j];
    }
    for (i=0; i<m; ++i)
    {
        s=0;k=0;
        for (j=0; j<n; ++j)
        {
            s+=x[j][i];
            k-=x[j][i];
        }
        if (k>s) for (j=0; j<n; ++j) x[j][i]=x[j][i]-2*x[j][i];
    }
    m2=0;
    for (i=0; i<n; ++i)
    for (j=0; j<m; ++j) m2+=x[i][j];
    if (m1>m2) printf("%d",m1);
    else printf("%d",m2);
    return 0;
}