Cod sursa(job #2189991)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 29 martie 2018 16:09:33
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stdlib.h>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
long long N,M,F[17][17],sn,sp,S_max;
long long Suma[50],Mod[20],aux,PU,ST; // 1-comutare

int main()
{
     f>>N>>M;
     for(int i=1;i<=N;i++)
     {
        sn=0; sp=0;
     for(int j=1;j<=M;j++)
     {
         f>>F[i][j];
         if(F[i][j]<0) sn+=F[i][j];
         else sp+=F[i][j];
         Mod[j]=F[i][j];
     }
        if(abs(sn)>=sp)
        {
            Suma[i]=abs(sn)+(-1)*sp;
            for(int l=1;l<=N;l++) F[i][l]=Mod[l]*(-1);
        }
        else  {  Suma[i]=sp+sn; Mod[i]=0; }
        ST+=Suma[i];
     }
     S_max=ST;
     for(int i=1;i<=M;i++)
     {
        ST=0;
        for(int j=1;j<=N;j++)
           {
                 if(F[j][i]>=0)
                 {
                     ST+=Suma[j]-(2*F[j][i]);
                     Mod[j]=F[j][i];
                 }
                 else
                 {
                     ST+=Suma[j]+(-2)*F[j][i];
                     Mod[j]=F[j][i];
                 }
           }
             if(ST>S_max)
             {
                 S_max=ST;
                 for(int l=1;l<=N;l++) { F[l][i]=(-1)*Mod[l]; Suma[l]+=F[l][i];   }
             }
     }g<<S_max;
    return 0;
}