Cod sursa(job #1509708)

Utilizator Belu99Bibo Bela Belu99 Data 24 octombrie 2015 11:13:40
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.29 kb
#include <iostream>
#include <fstream>
using namespace std;
int N,M,i,j,s,s1,s2,ok,ma,a[15][15];
bool k;
int main()
{
    ifstream f("flip.in");
    ofstream g("flip.out");
    f>>N;
    f>>M;
    for(i=0;i<N;i++)
        for(j=0;j<M;j++)
            f>>a[i][j];
    for(j=0;j<M;j++)
        {
            for(i=0;i<N;i++)
                if(a[i][j]<0)
                    s1=s1-a[i][j];
                else
                    if(a[i][j]>0)
                        s2=s2+a[i][j];
            if(s1>s2)
                {
                    for(i=0;i<N;i++)
                        a[i][j]=a[i][j]*(-1);
                    k=true;
                }
            s1=s2=0;
        }
    for(i=0;i<N;i++)
        {
            for(j=0;j<M;j++)
                    if(a[i][j]<0)
                        s1=s1-a[i][j];
                    else
                        if(a[i][j]>0)
                            s2=s2+a[i][j];
                if(s1>s2)
                {
                    for(j=0;j<M;j++)
                        a[i][j]=a[i][j]*(-1);
                    k=true;
                }
            for(j=0;j<M;j++)
                s=s+a[i][j];
            s1=s2=0;
        }
    ma=s;
    while(ok==0)
    {
        k=false;
        s=0;
        for(j=0;j<M;j++)
        {
            for(i=0;i<N;i++)
                if(a[i][j]<0)
                    s1=s1-a[i][j];
                else
                    if(a[i][j]>0)
                        s2=s2+a[i][j];
            if(s1>s2)
                {
                    for(i=0;i<N;i++)
                        a[i][j]=a[i][j]*(-1);
                    k=true;
                }
            s1=s2=0;
        }
        for(i=0;i<N;i++)
        {
        for(j=0;j<M;j++)
                if(a[i][j]<0)
                    s1=s1-a[i][j];
                else
                    if(a[i][j]>0)
                        s2=s2+a[i][j];
            if(s1>s2)
                {
                    for(j=0;j<M;j++)
                        a[i][j]=a[i][j]*(-1);
                    k=true;
                }
            for(j=0;j<M;j++)
                s=s+a[i][j];
            s1=s2=0;
        }
        if(s>ma)
            ma=s;
        if(k==false)
            ok++;
    }
    g<<s;
    return 0;
}