Cod sursa(job #2649407)

Utilizator stuxnetComan Alecsia stuxnet Data 14 septembrie 2020 17:13:38
Problema Jocul Flip Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.78 kb
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

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

void citire(int a[20][20], int &n, int &m)
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            fin>>a[i][j];
}

void afisare(int a[20][20],int n ,int m)
{
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
            cout<<setw(3)<<a[i][j]<<" ";
        cout<<endl;
    }
}

int min_col(int a[20][20], int n, int m)
{
    int v[17]={};
    for(int i=1;i<=n;i++)
    {
        int s=0;
        for(int j=1;j<=m;j++)
            s=s+a[j][i];
        v[i]=s;
    }
    int mini=v[1],x;
    for (int i=1;i<=m;i++)
        if(v[i]<mini)
        {
            x=i; //coloana cu cea mai mica suma
            mini=v[i];
        }
    return x;
}

int min_lin(int a[20][20], int n, int m)
{
    int v[17]={};
    for(int i=1;i<=n;i++)
    {
        int s=0;
        for(int j=1;j<=m;j++)
            s=s+a[i][j];
        v[i]=s;
    }
    int mini=v[1],x;
    for (int i=1;i<=n;i++)
        if(v[i]<mini)
        {
            x=i; //linia cu cea mai mica suma
            mini=v[i];
        }
    return x;
}

void comutator(int a[20][20],int n, int m)
{
    int lin,col,i,j;
    lin=min_lin(a,n,m);
    col=min_col(a,n,m);
    for(i=1;i<=m;i++)
        a[lin][i]=a[lin][i]*(-1);
    for(i=1;i<=n;i++)
        a[i][col]=a[i][col]*(-1);
}

int suma (int a[20][20],int n,int m)
{
    int s=0;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            s=s+a[i][j];
    return s;
}

int main()
{
    int a[20][20],n,m,x;
    citire(a,n,m);
    afisare(a,n,m);
    cout<<endl<<endl;
    comutator(a,n,m);
    fout<<suma(a,n,m);
    return 0;
}