Cod sursa(job #2489982)

Utilizator Yoyo22Ioana Teodora Yoyo22 Data 9 noiembrie 2019 15:15:26
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
void citire(int &m,int &n, int a[][17])
{
    int i,j;
    f>>m>>n;
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            f>>a[i][j];
}
int sumcol(int m,int a[][17], int c)//aflam semnul sumei mai mari de pe coloana data
{
    int s1=0,s2=0,i;
    for(i=1;i<=m;i++)
        if(a[i][c]<0)
            s1=s1+a[i][c];
            else
                s2=s2+a[i][c];
    if(-1*s1<s2)//daca suma nr negative in modul este mai mare decat cea a nr pozitive
        return 1;
    return 0;
}
int sumlin(int n,int a[][17],int l)//aflam semnul sumei mai mari de pe linia data
{
    int s1=0,s2=0,i;
    for(i=1;i<=n;i++)
        if(a[l][i]<0)
            s1=s1+a[l][i];
            else
                s2=s2+a[l][i];
    if(-1*s1<s2)//daca suma nr negative in modul este mai mare decat cea a nr pozitive
        return 1;
    return 0;
}
int main()
{
    int m,n,a[17][17],i,j,s=0;
    citire(m,n,a);
    for(i=1;i<=n;i++)
        if(sumcol(m,a,i)==0)
            for(j=1;j<=m;j++)
                a[j][i]=-1*a[j][i];
    for(i=1;i<=m;i++)
        if(sumlin(n,a,i)==0)
            for(j=1;j<=n;j++)
                a[i][j]=-1*a[i][j];

    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            s=s+a[i][j];
    g<<s;
    f.close();
    g.close();
    return 0;
}