Cod sursa(job #381729)

Utilizator cristibestTodica Lorin Cristian cristibest Data 11 ianuarie 2010 13:16:41
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include<fstream.h>

long s,ss,smax,lin[20],col[20],a[20][20];
int n,m,i,k,j,kk,jj,x[20],y[20],uu,u,ii,S;

int main()
{
    ifstream f("flip.in");
    ofstream g("flip.out");
    f>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            f>>a[i][j];
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            smax+=a[i][j];
    for(i=1;i<=n;i++)
    {
        for(j=0;j<=i;j++)
            x[j]=0;
        k=1;
        while(k)
        {
            x[k]++;
            if(k==i)
            {
                for(j=1;j<=k;j++)
                    for(jj=1;jj<=m;jj++)
                        a[x[j]][jj]*=-1;
                S=0;
                for(j=1;j<=m;j++)
                {
                    s=0;
                    for(jj=1;jj<=n;jj++)
                        s+=a[jj][j];
                    if(s>0)S+=s;
                    else S-=s;
                }
                if(S>smax)smax=S;
                for(j=1;j<=k;j++)
                    for(jj=1;jj<=m;jj++)
                        a[x[j]][jj]*=-1;
                u=0;
                while(x[k-u]==n-u)u++;
               k-=u;
            }
            else
            {
                k++;
                x[k]=x[k-1];
            }
        }
    }
    g<<smax;
    return 0;
}