Pagini recente » Cod sursa (job #318739) | Cod sursa (job #406662) | Cod sursa (job #413131) | Cod sursa (job #1976393) | Cod sursa (job #2239055)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
//----------------------------------------------------
void citire(int a[][16], int &n, int &m)
{
f >> n >> m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
f >> a[i][j];
}
void afisare(int a[][16], int n, int m)
{
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++)
cout << a[i][j] << " ";
cout << endl;
}
}
//----------------------------------------------------
int aBest[16][16];
//
void mpLine(int a[][16], int i, int m)
{
for(int j=1; j<=m; j++)
a[i][j] *= -1;
}
void mpColumn(int a[][16], int j, int n)
{
for(int i=1; i<=n; i++)
a[i][j] *= -1;
}
int sumMatrix(int a[][16], int n, int m)
{
int s=0;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
s += a[i][j];
return s;
}
void dupMatrix(int a[][16], int n, int m)
{
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
aBest[i][j] = a[i][j];
}
//
void bestResult(int a[][16], int n, int m, int &sumaBest)
{
for(int i=1; i<=n; i++)
{
mpLine(a,i,m);
for(int j=1; j<=m; j++)
{
mpColumn(a,j,n);
if(sumMatrix(a,n,m) > sumaBest)
{
sumaBest = sumMatrix(a,n,m);
dupMatrix(a,n,m);
}
mpColumn(a,j,n);
}
mpLine(a,i,m);
}
}
//----------------------------------------------------
int main() {
int a[16][16],n,m;
int sumaBest;
sumaBest = sumMatrix(a,n,m);
dupMatrix(a,n,m);
citire(a,n,m);
bestResult(a,n,m,sumaBest);
g << sumaBest;
return 0;
}