Cod sursa(job #913062)

Utilizator MarCelDragMacel Dragan MarCelDrag Data 13 martie 2013 08:43:43
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.47 kb
#include <fstream>
#include <iostream>

using namespace std;
int n,m,v[17][17];
int main()
{
    ifstream in("flip.in");
    ofstream out("flip.out");
    in >> n >> m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            in >> v[i][j];
    int s=0,sAux,sc[17],sl[17];
    for(int i=1;i<=n || i<=m;i++)
    {
        sl[i]=sc[i]=1;
    }
    do
    {
        sAux=s;
        for(int i=1;i<=n;i++)
        {
            int s1=0,s2=0;
            for(int j=1;j<=m;j++)
            {
                s1=s1+v[i][j]*sl[i]*sl[j];
                s2=s2-v[i][j]*sl[i]*sl[j];
            }
            if(s1<s2)
            {
                s=s+s2;
            }
            else
            {
                sl[i]=-sl[i];
            }
        }
        s=0;
        for(int i=1;i<=m;i++)
        {
            int s1=0,s2=0;
            for(int j=1;j<=n;j++)
            {
                s1=s1+v[j][i]*sl[j]*sl[i];
                s2=s2-v[j][i]*sl[j]*sl[i];
            }
            if(s1<s2)
            {
                s=s+s2;
            }
            else
            {
                sc[i]=-sc[i];
                s=s+s1;
            }
        }
        int stop=1;
    }while(s>sAux);

    out << sAux << endl;
/*
    cout << s << endl;
    for(int i=1;i<=n;i++)
    {
        cout << sl[i] << ' ';
    }
    cout << endl;
    for(int i=1;i<=m;i++)
    {
        cout << sc[i] << ' ';
    }
*/
    return 0;
}