Cod sursa(job #799050)

Utilizator Alex071Hodorogea Alexandru Alex071 Data 17 octombrie 2012 19:50:25
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <iostream>
#include <fstream>
using namespace std;
int suma_invers_linie(int a[20][20],int l,int n)
{
    int s=0;
    for(int g=1;g<=n;g++)
        s-=a[l][g];
    return s;
}
int suma_linie(int a[20][20],int l,int n)
{
    int s=0;
    for(int g=1;g<=n;g++)
        s+=a[l][g];
    return s;
}
int suma_invers_col(int a[20][20],int c,int m)
{
    int s=0;
    for(int g=1;g<=m;g++)
        s-=a[g][c];
    return s;
}
int suma_col(int a[20][20],int c,int m)
{
    int s=0;
    for(int g=1;g<=m;g++)
        s+=a[g][c];
    return s;
}
int main()
{
    int a[20][20],m,n,si,sn,s=0;
    ifstream f("flip.in");
    f>>m>>n;
    for(int i=1;i<=m;i++)
        for(int g=1;g<=n;g++)
            f>>a[i][g];
    for(int i=1;i<=m;i++)
    {
        sn=suma_linie(a,i,n);
        si=suma_invers_linie(a,i,n);
        if(sn<si)
            for(int g=1;g<=n;g++)
                a[i][g]=-a[i][g];
    }
    for(int i=1;i<=n;i++)
    {
        sn=suma_col(a,i,m);
        si=suma_invers_col(a,i,m);
        if(sn<si)
            for(int g=1;g<=m;g++)
                a[g][i]=-a[g][i];
    }
    for(int i=1;i<=m;i++)
        for(int g=1;g<=n;g++)
            s+=a[i][g];
    ofstream out("flip.out");
    out<<s;
    return 0;
}