Cod sursa(job #2700098)

Utilizator Victor280605Victor Dragos Victor280605 Data 26 ianuarie 2021 15:54:05
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.58 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("flip.in");
ofstream out("flip.out");


int main()
{
    int n,m,c,sum,i,j,a;
    in >> n;
    in >> m;
    int co=0;
    c=1;
    sum=0;
    int suml[n+1], sumc[m+1],sumlf[n+1],sumcf[m+1], nr[(n*m)+1];
    for(i=1; i<=n*m; i++)
    {
        in>>a;
        nr[i]=a;
    }
    while(c==1)
    {
        c=0;
        co=0;
        for(i=1; i<=n; i++)
        {
            suml[i]=0;
            sumlf[i]=0;
        }
        for(i=1; i<=m; i++)
        {
            sumc[i]=0;
            sumcf[i]=0;
        }

        for(i=1; i<=n; i++)
        {
            for(j=1; j<=m; j++)
            {
                co=co+1;
                suml[i]=suml[i]+nr[co];
                sumc[j]=sumc [j]+nr[co];
                sumlf[i]=sumlf[i] + nr[co]*(-1);
                sumcf[j]=sumcf[j] + nr[co]*(-1);
            }
        }
        for(i=1; i<=n; i++)
        {
            if(suml[i]<sumlf[i])
            {
                for(j=(i*m)-(m-1); j<=(i*m); j++)
                {
                    nr[j]=nr[j]*-1;
                }
                c=1;
            }
        }
        if(c==1)
        {
            continue;
        }
        for(i=1; i<=m; i++)
        {
            if(sumc[i]<sumcf[i])
            {
                for(j=i; j<=n*m; j=j+m)
                {
                    nr[j]=nr[j]*-1;
                }
                c=1;
            }
        }
    }
    for(i=1; i<=n; i++)
    {
        sum=sum+suml[i];
    }
    out << sum;
}