Pagini recente » Cod sursa (job #2271767) | Cod sursa (job #1677444) | Cod sursa (job #245213) | Cod sursa (job #616713) | Cod sursa (job #80137)
Cod sursa(job #80137)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f;
f.open("flip.in");
int mx[16][16];
int m,n;
f>>m;
f>>n;
int smax=0;
short int linii[16];
short int coloane[16];
for (int i=0; i<m; i++)
{ linii[i]=1; }
for (int i=0; i<n; i++)
{ coloane[i]=1;}
for (int i=0; i<m; i++)
{
for (int j=0; j<n; j++)
{
f>>mx[i][j];
smax += mx[i][j];
}
}
int s, im, jm, si, sj, c=0;
while (c==0)
{
c++;
si=36000;
for (int i=0; i<m; i++)
{
if (linii[i]!=0)
{
s=0;
c=0;
for (int j=0; j<n; j++)
{
s+=mx[i][j];
}
if (s<si)
{
si=s;
im=i;
}
}
}
sj=36000;
for (int j=0; j<n; j++)
{
if (coloane[j]!=0)
{
s=0;
c=0;
for (int i=0; i<m; i++)
{
s+=mx[i][j];
}
if (s<sj)
{
sj=s;
jm=j;
}
}
}
if (si<sj)
{
if (si<=0)
{
linii[im]=0;
s=smax;
for (int j=0; j<n; j++)
{
mx[im][j]*=-1;
s+=2*mx[im][j];
}
if (s>smax)
{
smax=s;
c=0;
}
}
else c=4;
}
else
{
if (sj<=0)
{
coloane[jm]=0;
s=smax;
for (int i=0; i<m; i++)
{
mx[i][jm]*=-1;
s+=2*mx[i][jm];
}
if (s>smax)
{
smax=s;
c=0;
}
}
else c=4;
}
}
ofstream g;
g.open("flip.out");
g<<smax;
g.close();
return 0;
}