Pagini recente » Cod sursa (job #2251535) | Cod sursa (job #320679) | Cod sursa (job #2936926) | Cod sursa (job #967666) | Cod sursa (job #804660)
Cod sursa(job #804660)
#include <fstream>
#include <cstdio>
//#include <time.h>
int i,j,l,c,v[16][16],rez = -256000000;
void doSumL(int);
void doSumC(int);
int main()
{
//clock_t startTime = clock();
freopen("flip.txt","r",stdin);
freopen("flip2.txt","w",stdout);
scanf("%d",&l);
scanf("%d",&c);
for (i=0;i<l;i++)
for (j = 0 ;j<c;j++)
scanf("%d",&v[i][j]);
//
doSumL(rez);
//
/*clock_t endTime = clock();
clock_t clockTicksTaken = endTime - startTime;
double timeInSeconds = clockTicksTaken / (double) CLOCKS_PER_SEC;*/
printf("%d",rez);
return 0;
}
//int switchSignOnLine(int v[16][16],int linie)
//{
// int sumPoz =0 , sumNeg = 0;
// for(i=0;i<c;i++)
// if(v[linie][i] > 0 )
// sumPoz += v[linie][i];
// else
// sumNeg += v[linie][i];
// /*if( sumPoz > sumNeg)
// return 1;
// else if ( sumPoz < sumNeg )
// return -1;
// else return 0;*/
// return sumPoz + sumNeg;
//}
//int switchSignOnColumn(int v[16][16],int coloana)
//{
// int sumPoz =0 , sumNeg = 0;
// for(i=0;i<l;i++)
// if(v[i][coloana] > 0 )
// sumPoz += v[i][coloana];
// else
// sumNeg += v[i][coloana];
// /*if( sumPoz > sumNeg)
// return 1;
// else if ( sumPoz < sumNeg )
// return -1;
// else return 0;*/
// return sumPoz + sumNeg;
//}
void doSumL(int sumMax)
{
int sumMaxLocal = 0;
for(i = 0 ; i < l; i++ )
{
int suma = 0;
for ( j = 0; j < c; j++)
suma += v[i][j];
if (suma < 0)
{
suma = -suma;
for ( j = 0; j < c; j++)
v[i][j] = -v[i][j];
}
sumMaxLocal += suma;
}
if(sumMaxLocal > sumMax)
doSumC(rez = sumMaxLocal);
}
void doSumC(int sumMax)
{
int sumMaxLocal = 0;
for(i = 0 ; i < c; i++ )
{
int suma = 0;
for ( j = 0; j < l; j++)
suma += v[j][i];
if (suma < 0)
{
suma = -suma;
for ( j = 0; j < l; j++)
v[j][i] = -v[j][i];
}
sumMaxLocal += suma;
}
if(sumMaxLocal > sumMax)
doSumL(rez = sumMaxLocal);
}