Pagini recente » Cod sursa (job #2741865) | Cod sursa (job #421226) | Cod sursa (job #2513952) | Cod sursa (job #1803332) | Cod sursa (job #945726)
Cod sursa(job #945726)
/*
Jocul flip - Infoarena
*/
#include <iostream>
#include <cstdio>
using namespace std;
long int tabla[17][17], N, M;
void citire(int r,int c)
{
cin>>tabla[r][c];
if(c<M) citire(r,c+1);
else if(r<N) citire(r+1,1);
}
int comutareR(int r, long int s)
{
long int d = 0;
for(int i=1; i<=M; i++) d+=tabla[r][i];
if(d < d * -1) {for(int i=1; i<=N; i++) tabla[r][i]*=-1;}
if(r<N) comutareR(r+1,s+d);
else return s+d;
}
int comutareC(int c)
{
long int s = 0;
for(int i=1; i<=N; i++) s+=tabla[i][c];
if(s < s * -1) { for(int i=1; i<=N; i++) tabla[i][c]*=-1;}
return comutareR(1,0);
}
int main()
{
freopen("flip.in","r",stdin);
cin>>N>>M;
citire(1,1);
long int suma[N * M], maxim = 0;
for(int i=1; i<=M; i++)
{
suma[i]=comutareC(i);
if(suma[i]>maxim) maxim = suma[i];
}
freopen("flip.out","w",stdout);
cout<<maxim;
}