Cod sursa(job #2770414)

Utilizator raresgherasaRares Gherasa raresgherasa Data 20 august 2021 20:04:20
Problema Jocul Flip Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.63 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("flip.in");
ofstream fout ("flip.out");
long long a[20][20],b[20][20],sum,n,m,i,j,s1,s2,maxim,s;
int main()
{
     fin>>n>>m;
     for (i=1;i<=n;i++)
     {
         for (j=1;j<=m;j++)
         {
             fin>>a[i][j];
             b[i][j]=a[i][j];
             sum+=a[i][j];
         }
     }
     maxim=sum;
     ///Cazul 1 : linii si dupa coloane
     s=sum;
     for (i=1;i<=n;i++)
     {
         s1=s2=0;
         for (j=1;j<=m;j++)
         {
             s1+=b[i][j];
             s2-=b[i][j];
         }
         if (s2>s1)
         {
             s+=(s2-s1);
             for (j=1;j<=m;j++) b[i][j]=-b[i][j];
         }
     }
     for (j=1;j<=m;j++)
     {
         s1=s2=0;
         for (i=1;i<=n;i++)
         {
             s1+=b[i][j];
             s2-=b[i][j];
         }
         if (s2>s1) s+=s2-s1;
     }
     maxim=max(maxim,s);
     ///Cazul 2 : coloane si dupa linii
     for (i=1;i<=n;i++)
     {
         for (j=1;j<=m;j++) b[i][j]=a[i][j];
     }
     ///reiau matricea
     s=sum;
     for (j=1;j<=m;j++)
     {
         s1=s2=0;
         for (i=1;i<=n;i++)
         {
             s1+=b[i][j];
             s2-=b[i][j];
         }
         if (s2>s1)
         {
             s+=s2-s1;
             for (i=1;i<=n;i++) b[i][j]=-b[i][j];
         }
     }
     for (i=1;i<=n;i++)
     {
         s1=s2=0;
         for (j=1;j<=m;j++)
         {
             s1+=b[i][j];
             s2-=b[i][j];
         }
         if (s2>s1) s+=s2-s1;
     }
     maxim=max(maxim,s);
     ///
     fout<<maxim;
}