Cod sursa(job #963127)

Utilizator EhtRalpmetFMI Ardei Claudiu-Alexandru EhtRalpmet Data 16 iunie 2013 16:39:30
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <iostream>
#include <fstream>
using namespace std;

int p=0,m,n,i,j,v[17][17];

void afisare()
{
    for(i=0;i<n;i++)
        {
            for(j=0;j<m;j++)
                cout<<v[i][j]<<" ";
            cout<<'\n';
        };
    cout<<'\n'<<'\n';
}
int sc(int coloana)
{
    int s=0;
    for(int a=0;a<n;a++)
        s+=v[a][coloana];
    return s;
}
int sl(int linie)
{
    int s=0;
    for(int a=0;a<m;a++)
        s+=v[linie][a];
    return s;
}

int ver()
{
    int b;
    for(b=0;b<m;b++)
        if(sc(b)<0)
            return 0;
    for(b=0;b<n;b++)
        if(sl(b)<0)
            return 0;
    return 1;
}
void invc(int coloana)
{
    for(int a=0;a<n;a++)
        v[a][coloana]=-v[a][coloana];
    afisare();
}
void invl(int linie)
{
    for(int a=0;a<m;a++)
        v[linie][a]=-v[linie][a];
    afisare();
}

int main()
{
    ifstream f("flip.in");
    ofstream g("flip.out");
    f>>n>>m;
    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            f>>v[i][j];
    while(ver()==0)
    {
        for(i=0;i<n;i++)
            if(sc(i)<0)
                invc(i);
        for(j=0;j<m;j++)
            if(sl(j)<0)
                invl(j);
    }

    for(i=0;i<n;i++)
        for(j=0;j<m;j++)
            p+=v[i][j];
    g<<p;

    return 0;
}