Pagini recente » Cod sursa (job #2716730) | Cod sursa (job #2589765) | Cod sursa (job #453293) | Cod sursa (job #1973878) | Cod sursa (job #648737)
Cod sursa(job #648737)
#include <cstdio>
#include <iostream>
#include <fstream>
using namespace std;
int sol = 0,suma1,suma2,suma3,suma4,total;
int nrLinii,nrColoane;
int a[16][16];
int i,j;
int aux[16];
int value(int a[16],int size)
{
int s = 0;
for (int i=1;i<=size;i++)
s += a[i];
return s;
}
int flippedValue(int a[16],int size)
{
int s = 0;
for (int i=1;i<=size;i++)
s += -a[i];
return s;
}
int back(int n)
{suma1=0;suma2=0;suma3=0,suma4=0;total=0;
if (n > nrLinii)
return sol;
else
{
for ( i=1;i<=nrColoane;i++)
{
for (j=1;j<=nrLinii;j++)
aux[j] = a[j][i];
if ( value(aux,nrLinii) > flippedValue(aux,nrLinii) )
{
total += value(aux,nrLinii);
}
else
{
total += flippedValue(aux,nrLinii);
}
}
if (total > sol) {sol = total;}
cout << "Normal line "<< n << " total : " << total << endl;
total = 0; suma1=0 ; suma2=0; suma3 = 0; suma4 = 0;
for ( j=1;j<=nrColoane;j++)
{
a[n][j] = -a[n][j];
}
for ( i=1;i<=nrColoane;i++)
{
for (j=1;j<=nrLinii;j++)
aux[j] = a[j][i];
if ( value(aux,nrLinii) > flippedValue(aux,nrLinii) )
{
total += value(aux,nrLinii);
}
else
{
total += flippedValue(aux,nrLinii);
}
}
for ( j=1;j<=nrColoane;j++)
{
a[n][j] = -a[n][j];
}
if (total > sol) {sol = total;}
//cout << "Flipped line "<< n << " column " << i << " total : " << total << endl;
return back(n+1);
}
}
int main()
{
ifstream in; in.open("flip.in");
in >> nrLinii >> nrColoane;
for (int i=1;i<=nrLinii;i+=1)
for (int j=1;j<=nrColoane;j+=1)
in >> a[i][j];
in.close();
ofstream out; out.open("flip.out");
out << back(1);
out.close();
return 0;
}