Cod sursa(job #2247240)

Utilizator Bigiu_AndreiBigiu Andrei Bigiu_Andrei Data 28 septembrie 2018 10:09:17
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.81 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("flip.in");
ofstream g ("flip.out");
int suma_matrice(int a[20][20],int n,int m,int z, int y)
{
    int suma=0;
    for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
        {

            if(z==i)
            {
                suma+=(a[i][j]*(-1));
            }
            else if(y==j)
            {
                suma+=(a[i][j]*(-1));
            }
            else

                suma+=(a[i][j]);
        }
    return suma;
}
void linii (int a[20][20],int n,int m)
{
    int sumapoz,sumaneg;
    for(int i=0; i<n; i++)
    {
        sumapoz=0;
        sumaneg=0;
        for(int j=0; j<m; j++)
        {
            if(a[i][j]>0)
                sumapoz+=a[i][j];
            else
                sumaneg+=a[i][j];

        }
        if(suma_matrice(a,n,m,i,-1)>suma_matrice(a,n,m,-1,-1))
        {
            for(int x=0; x<m; x++)
                a[i][x]*=-1;
        }
    }
}
void coloane(int a[20][20], int n, int m)
{
    int sumapoz,sumaneg;
    for(int i=0; i<n; i++)
    {
        sumapoz=0;
        sumaneg=0;
        for(int j=0; j<m; j++)
        {
            if(a[j][i]>0)
                sumapoz+=a[j][i];
            else
                sumaneg+=a[j][i];

        }
        if(suma_matrice(a,n,m,-1,i)>suma_matrice(a,n,m,-1,-1))
        {
            for(int x=0; x<n; x++)
                a[x][i]*=-1;
        }
    }
}

int main()
{

    int a[20][20],m,n;
    f>>n>>m;
    for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
            f>>a[i][j];

    linii(a,n,m);
    coloane(a,n,m);
    for(int i=0;i<n;i++)
    {
        cout<<"\n";
        for(int j=0;j<m;j++)
            cout<<a[i][j]<<" ";
    }

    g<<suma_matrice(a,n,m,-1,-1);
    return 0;
}