Cod sursa(job #1228086)

Utilizator flore77Simion Florentin flore77 Data 12 septembrie 2014 17:07:00
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<fstream>
using namespace std;
int l[33];
int a[17][17],n,m;

int main()
{int i,j,q=0,k;
int suma=0,smax=0;
ifstream f("flip.in");
f>>n>>m;

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

f.close();

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

for(j=1;j<=m;j++){l[n+j]=0;
   for(i=1;i<=n;i++)l[n+j]+=a[i][j];}
int minim=0;
for(i=1;i<=n+m;i++)
   if(minim>l[i]){minim=l[i]; q=i;}
for(int k=1;k<=30;k++){
      if(q<=n){ l[q]=-l[q];
             
              for (j=1;j<=m;j++) {a[q][j]=-a[q][j];
                                l[n+j]+=2*a[q][j];}}
         else {l[q]=-l[q];
             
             for (i=1;i<=n;i++){a[i][q-n]=-a[i][q-n];
                              l[i]+=2*a[i][q-n];}
               }

  minim=0; q=0;
for(i=1;i<=n+m;i++)
   if(minim>l[i]){minim=l[i]; q=i;}


 for(i=1;i<=n;i++)
     
       suma+=l[i];
if(suma>smax)smax=suma
}


ofstream g("flip.out");
g<<smax;
g.close();
return 0;
}