Cod sursa(job #1047545)

Utilizator ionut.gradinaruIonut Gradinaru ionut.gradinaru Data 4 decembrie 2013 17:36:43
Problema Jocul Flip Scor 20
Compilator c Status done
Runda Arhiva de probleme Marime 1.99 kb
#include <stdio.h>

int main()
{
    FILE *f=fopen("flip.in","r"),*g=fopen("flip.out","w");
    int i=0,j=0,k=0,m=0,n=0, colSum=0;
    long long max = -3000000000, mSum=0;
    fscanf(f,"%d %d", &n, &m);
    n = n % 17;
    m = m % 17;

    int a[n][m];
    for(i=0;i<n;i++)
    {
        for(j=0; j<m; j++)
        {
            fscanf(f, "%d", &a[i][j]);

        }
    }
     for (k = -1; k < n; k++)
     {
        mSum = 0;
        for (j = 0; j < m; j++)
        {
            colSum = 0;
            for (i = 0; i < n; i++)
            {
                if (i == k)
                    colSum = colSum - a[i][j];
                else
                    colSum = colSum + a[i][j];
            }

            if (colSum > 0)
                mSum =mSum + colSum;
            else
                mSum =mSum - colSum;
        }

        if (mSum > max)
        {
            max = mSum;
        }
     }
    fprintf(g, "%lld", max);
    fclose(f);
    fclose(g);

    return 0;
}
/*
#include <stdio.h>
#include <limits.h>
#define INF (long long)3000000000

int main()
{
FILE *f=fopen("flip.in","r"),*g=fopen("flip.out","w");
int a[17][17],i,j,m,n,ok,v[17],s;
long long st;

    long long max= -INF;
    fscanf(f,"%d %d",&n,&m);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            fscanf(f,"%d",&a[i][j]);
    ok=1;
    while(ok){
           ok=0;
        for(i=1;i<=n && ok==0;i++)
            if(v[i]==0){
                v[i]=1;
                ok=1;
        }
             else
                v[i]=0;
        if(ok){
            st=0;
            for(j=1;j<=m;j++){

                    s=0;
                    for(i=1;i<=n;i++)
                        if(v[i])
                        s=s-a[i][j];
                        else
                          s=s+a[i][j];
                   if(s>0)
                        st+=s;
                    else
                        st+=-s;
            }
               if(st>max)
                        max=st;
                }
    }
    fprintf(g,"%lld",max);

    return 0;
}
*/