Cod sursa(job #563922)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 26 martie 2011 13:24:42
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include<stdio.h>
int n,m,i,j,k,st[17],e;
long a[17][17],l[17],c[17],c1[17],max=0,s;
int main()
{freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d\n",&n,&m);
for(i=1;i<=n;i++)
     {l[i]=0;
     for(j=1;j<=m;j++)
            {scanf("%ld",&a[i][j]);
            l[i]+=a[i][j];}}
for(j=1;j<=m;j++)
     {c[j]=0;
     for(i=1;i<=n;i++)
            c[j]+=a[i][j];}
for(i=1;i<=n;i++)
     {k=1;
     st[k]=0;
     while(k>0)
            {st[k]++;
            if(st[k]<=n)
                    if(k==i)
                            {s=0;
                            for(j=1;j<=m;j++)
                                    {c1[j]=c[j];
                                    for(e=1;e<=i;e++)
                                            c1[j]=c1[j]-2*a[st[e]][j];
                                    if(c1[j]<0)
                                            c1[j]=-c1[j];
                                    s+=c1[j];}
                            if(s>max)
                                    max=s;}
                    else
                            {k++;
                            if(k>1)
                                   st[k]=st[k-1];
                            else
                                   st[k]=0;}
            else
                    k--;}}
printf("%ld\n",max);
fclose(stdin);
fclose(stdout);
return 0;}