Cod sursa(job #1386126)

Utilizator mihaiilieMihai Ilie mihaiilie Data 12 martie 2015 18:29:34
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.51 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int a[16][16],i,j,m,n,l[16],l1[16],s=0;
bool ok=false;
void citire()
{
    f>>m>>n;
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            f>>a[i][j];
}
void afisare()
{
    for(i=1;i<=m;i++)
    {
        for(j=1;j<=n;j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
}
void suma()
{
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            s+=a[i][j];
}
int main()
{
    citire();
    while(!ok)
    {
        ok=true;
        for(i=1;i<=m;i++)
            l1[i]=l[i]=0;
        for(i=1;i<=m;i++)
            for(j=1;j<=n;j++)
                l[i]+=a[i][j];
        for(i=1;i<=m;i++)
            for(j=1;j<=n;j++)
            {
                l1[i]+=a[i][j]*(-1);
                if(j==n&&l1[i]>l[i])
                {
                    for(j=1;j<=n;j++)
                        a[i][j]*=-1;
                    ok=false;
                }
            }
        for(i=1;i<=m;i++)
            l1[i]=l[i]=0;
        for(j=1;j<=n;j++)
            for(i=1;i<=m;i++)
                l[j]+=a[i][j];
        for(j=1;j<=n;j++)
            for(i=1;i<=m;i++)
            {
                l1[j]+=a[i][j]*(-1);
                if(i==m&&l1[j]>l[j])
                {
                    for(i=1;i<=m;i++)
                        a[i][j]*=-1;
                    ok=false;
                }
            }
    }
    afisare();
    suma();
    g<<s;
}