Cod sursa(job #1481312)

Utilizator superstar1998Moldoveanu Vlad superstar1998 Data 4 septembrie 2015 10:26:22
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
using namespace std;
int n,m,a[17][17],smax;
void Citeste()
{
    ifstream f("flip.in");
    f>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            f>>a[i][j];
    f.close();
}
int sl(int i)
{
    int s=0;
    for(int j=1;j<=m;j++)
        s+=a[i][j];
    return s;
}
int sc(int j)
{
    int s=0;
    for(int i=1;i<=n;i++)
        s+=a[i][j];
    return s;
}
void invertl(int i)
{
    for(int j=1;j<=m;j++)
        a[i][j]*=-1;
}
void invertc(int j)
{
    for(int i=1;i<=n;i++)
        a[i][j]*=-1;
}
void Scrie()
{
    ofstream g("flip.out");
    g<<smax;
    g.close();
}
void Rezolva()
{
    bool ok=false;
    while(!ok)
    {
        ok = true;
        for(int i=1;i<=n;i++)
            if(sl(i)<0) {invertl(i);ok=false;}
        for(int j=1;j<=m;j++)
            if(sc(j)<0) {invertc(j);ok=false;}
    }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            smax+=a[i][j];
}
int main()
{
    Citeste();
    Rezolva();
    Scrie();
    return 0;
}