Cod sursa(job #2312604)

Utilizator danielglodeanuDaniel Glodeanu danielglodeanu Data 5 ianuarie 2019 03:09:28
Problema Jocul Flip Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.81 kb
#include <fstream>
using namespace std;

int main() {
    ifstream fin("flip.in");
    ofstream fout("flip.out");
    int l, c, i, j, copyl, copyc;
    long long a[17][17], minl, minc;
    fin>>l>>c;
    
    for (i=1; i<=l; i++)
        for (j=1; j<=c; j++)
            fin>>a[i][j];
    
    for (i=0;i<=l;i++)
        a[i][0]=0;
    for (j=0;j<=c;j++)
        a[0][j]=0;
    
    for (i=1; i<=l; i++)
        for (j=1; j<=c; j++)
            a[i][0]+=a[i][j];
    
    for (j=1; j<=c; j++)
        for (i=1; i<=l; i++)
            a[0][j]+=a[i][j];
    
    /*for (i=0; i<=l; i++)
    {
        for (j=0; j<=c; j++)
            fout<<a[i][j]<<" ";
        fout<<endl;
    }
    fout<<endl;*/
    
    minl=-1;
    minc=-1;
    copyc=0;
    copyl=0;
    
    while ((minl<0) || (minc<0))
    {
        
    minl=0;
    minc=0;
    
    for (i=1; i<=l; i++)
        if (a[i][0]<=minl)
        {
            minl=a[i][0];
            copyl=i;
        }
    
    for(j=1; j<=c; j++)
        if (a[0][j]<=minc)
        {
            minc=a[0][j];
            copyc=j;
        }
    
    if (minl<minc)
        {
            a[copyl][0]=0;
            for (j=1; j<=c; j++)
            {
                a[copyl][j]*=-1;
                a[copyl][0]+=a[copyl][j];
            }
            minl=a[copyl][0];
        }
    else
        {
            a[0][copyc]=0;
            for (i=1; i<=l; i++)
            {
                a[i][copyc]*=-1;
                a[0][copyc]+=a[i][copyc];
            }
            minc=a[0][copyc];
        }
        
   /*   for (i=0; i<=l; i++)
        {
            for (j=0; j<=c; j++)
                fout<<a[i][j]<<" ";
            fout<<endl;
        }
        fout<<endl;*/
    }
    
    minc=0;
    
    for (i=1; i<=l; i++)
        for (j=1; j<=c; j++)
            minc+=a[i][j];

    fout<<minc;
    
    return 0;
}