Cod sursa(job #1825808)

Utilizator dragos231456Neghina Dragos dragos231456 Data 9 decembrie 2016 18:07:40
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("flip.in"); ofstream g("flip.out");
int a[20][20],lin[20],n,m,s,mx,v[20],k,si;
void flip(int h)
{
    s=0;
    for(int i=1;i<=n;++i)
    {
        si=0;
        for(int j=1;j<=h;++j)
        {
            si+=(2*a[i][v[j]]);
        }
        s+=abs(lin[i]-si);
    }
    mx=max(mx,s);
}
int main()
{
    f>>n>>m;
    if(n<m)
    {
        k=m;
        m=n;
        n=k;
    }
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=m;++j)
        {
            f>>a[i][j];
            lin[i]+=a[i][j];
        }
        mx+=lin[i];
    }
    for(int h=1;h<=m;++h)
    {
        for(int x=1;x<=20;++x)
        {
            v[x]=0;
        }
        k=1;
        while(k>0)
        {
            if(v[k]<m)
            {
                ++v[k];
                if(k==h)
                {
                    flip(h);
                }
                else
                {
                    ++k;
                    v[k]=v[k-1];
                }
            }
            else --k;
        }
    }
    g<<mx;
    return 0;
}