Cod sursa(job #975205)

Utilizator piticutzu15Covaciu Andrei piticutzu15 Data 19 iulie 2013 13:47:06
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.16 kb
#include<fstream>
using namespace std;
int main()
{
    int m,n,i,j,sp,sn,max1=0,max2=0;
    long int a[100][100],b[100][100];
    ifstream f("flip.in");
    ofstream g("flip.out");
    f>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            {
                f>>a[i][j];
                b[i][j]=a[i][j];
            }

        for(j=1;j<=m;j++)
            {
                sp=0;sn=0;
                for(i=1;i<=n;i++)
                    {
                        if(a[i][j]>0)
                            sp+=a[i][j];
                        else
                            sn-=a[i][j];
                    }
                if(sn>sp)
                    for(i=1;i<=n;i++)
                        a[i][j]*=-1;
             }
         for(i=1;i<=n;i++)
            {
                sp=0;sn=0;
                for(j=1;j<=m;j++)
                    {
                        if(a[i][j]>0)
                            sp+=a[i][j];
                        else
                            sn-=a[i][j];
                    }
                if(sn>sp)
                    for(j=1;j<=m;j++)
                        a[i][j]*=-1;
             }


         for(i=1;i<=n;i++)
            {
                sp=0;sn=0;
                for(j=1;j<=m;j++)
                 {
                     if(b[i][j]>0)
                        sp+=b[i][j];
                    else
                        sn-=b[i][j];
                }
             if(sn>sp)
                for(j=1;j<=m;j++)
                    b[i][j]*=-1;
             }
          for(j=1;j<=m;j++)
            {
                sp=0;sn=0;
                for(i=1;i<=n;i++)
                 {
                     if(b[i][j]>0)
                        sp+=b[i][j];
                     else
                        sn-=b[i][j];
                 }
             if(sn>sp)
                for(i=1;i<=n;i++)
                    b[i][j]*=-1;
                }
    for(i=1;i<=n;i++)
          for(j=1;j<=m;j++)
          {
              max1+=a[i][j];
               max2+=b[i][j];
          }
    g<<(max (max1,max2));
    f.close();
    g.close();
    return 0;
}