Cod sursa(job #2312606)

Utilizator danielglodeanuDaniel Glodeanu danielglodeanu Data 5 ianuarie 2019 03:38:07
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.28 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];
            }
            for (j=1; j<=c; j++)
                a[0][j]+=a[copyl][j]*2;
            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];
            }
            for (i=0; i<=l; i++)
                a[i][0]+=a[i][copyc]*2;
            minc=a[0][copyc];
        }
        
        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;
            }
        
  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;
}