Cod sursa(job #1197081)

Utilizator dannychris37Dan Chirascu dannychris37 Data 10 iunie 2014 18:42:21
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.4 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
void switch_col(int a,int n,int t[][50])
{
    for(int i=1;i<=n;i++)
        t[i][a]=t[i][a]*-1;

}
void switch_line(int a, int m, int t[][50])
{
    for(int j=1;j<=m;j++)
        t[a][j]=t[a][j]*-1;
}
void show(int t[][50],int n, int m)
{
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
            g<<t[i][j]<<" ";
        g<<endl;
    }
}
void comp_col(int a,int n, int s1, int s2, int t[][50])
{
    for(int i=1;i<=n;i++)
    {
        s1=s1+t[i][a];
        s2=s2+(t[i][a]*-1);
    }
    if(s2>s1)
    {
        switch_col(a,n,t);
        //g<<"S-a schimbat coloana "<<a<<endl;
    }
}

void comp_lin(int a, int m, int s1, int s2, int t[][50])
{
    for(int j=1;j<=m;j++)
    {
        s1=s1+t[a][j];
        s2=s2+(t[a][j]*-1);
    }
    if(s2>s1)
    {
        switch_line(a,m,t);
        //g<<"S-a schimbat linia "<<a<<endl;
    }
}
int main()
{
    int n,m,t[50][50],s1=0,s2=0,sf=0;
    f>>n>>m;

    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        f>>t[i][j];

for(int i=1;i<=n;i++)
        comp_lin(i,m,s1,s2,t);
    for(int j=1;j<=m;j++)
        comp_col(j,n,s1,s2,t);


    //show(t,n,m);

    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            sf=sf+t[i][j];
        //g<<"suma e "<<sf;
    return 0;
}