Pagini recente » Cod sursa (job #182437) | Cod sursa (job #806963) | Cod sursa (job #229883) | Cod sursa (job #121486) | Cod sursa (job #2618469)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
void mcitire(int& n, int& m, int a[][100],int &S1)
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
{
fin >> a[i][j]; S1 += a[i][j];
}
}
void flipl(int linie,int m, int a[][100])
{
for (int i = 1; i <= m; i++)
a[linie][i] *= -1;
}
void flipc(int coloana,int n, int a[][100])
{
for (int i = 1; i <= n; i++)
a[i][coloana] *= -1;
}
int suma(int n, int m,int a[][100])
{
int S = 0;
for (int i = 1; i <=n; i++)
for (int j = 1; j <= m; j++)
{
S += a[i][j];
}
return S;
}
void sortare(long frec[])
{
long aux;
for (long i = 1; i < 256; i++)
for (long j = i + 1; j <= 256; j++)
if (frec[i] < frec[j])
{
aux = frec[i];
frec[i] = frec[j];
frec[j] = aux;
}
}
long* frec = new long[257];
int main()
{
int i, j, m, n, a[100][100], S1 = 0;
mcitire(n, m, a,S1);
for (i = 1; i <= n; i++)
{
flipl(i, m, a);
for (j = 1; j <= m; j++)
{
flipc(j, n, a);
suma(n, m, a);
frec[i * j] = suma(n,m,a);
flipc(j, n, a);
}
flipl(i, m, a);
}
sortare(frec);
if (S1 > frec[1])
fout << S1;
else
fout << frec[1];
fout.close();
delete [] frec;
return 0;
}