Cod sursa(job #1191569)

Utilizator breahnadavidBreahna David breahnadavid Data 28 mai 2014 00:20:23
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.36 kb
#include<iostream>
#include<fstream>

using namespace std;
ifstream f;
ofstream g;
 
long int t[20][20],m,n,i,j,mn,a[20][20];

void suma()
        {

        for(i=0;i<n;i++){t[i][m]=0;
        for(j=0;j<m;j++)t[i][m]+=t[i][j];}

        for(i=0;i<n;i++){t[n][i]=0;
        for(j=0;j<m;j++)t[n][i]+=t[j][i];}
        }

long int sumat()
        {

        long int qw;
        qw=0;
        for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)qw+=t[i][j];
        return qw;
        }

void linie(int mn)
        {
        for(int i=0;i<m;i++)t[mn][i]*=-1;
         }
void coloana(int mn)
        {
        for(int i=0;i<n;i++)t[i][mn]*=-1;
         }

int main()
{
f.open("flip.in");
g.open("flip.out");
f>>n>>m;

for(i=0;i<n;i++)
for(j=0;j<m;j++){f>>t[i][j];a[i][j]=t[i][j];}
suma();

for(int sd=0;sd<=n;sd++){
for(i=0;i<n;i++)if(sumat()<=sumat()-t[i][m]-t[i][m])linie(i);
suma();
for(i=0;i<m;i++)if(sumat()<=sumat()-t[n][i]-t[n][i])coloana(i);
suma();
                 }


long int wer;
wer=sumat();

for(i=0;i<n;i++)
for(j=0;j<m;j++)t[i][j]=a[i][j];
suma();

for(int sd=0;sd<=n;sd++){

for(i=0;i<m;i++)if(wer<=sumat()-t[n][i]-t[n][i]){coloana(i);wer=sumat();}
suma();

for(i=0;i<n;i++)if(wer<=sumat()-t[i][m]-t[i][m]){linie(i);wer=sumat();}
suma();
                 }



g<<wer;
f.close();
g.close();
return 0;
}