Pagini recente » Statistici Dezso Laszlo (DLaszlo2003) | Cod sursa (job #1822190) | Cod sursa (job #2220505) | Cod sursa (job #2701104) | Cod sursa (job #2784496)
#include<bits/stdc++.h>
using namespace std;
ifstream F("flip.in");
ofstream G("flip.out");
int b[16][16],n,m,i,j,r,k,s,x,o=-900000000,t,l;
int U()
{
int s,i,j;
for(s=i=0;i<n;++i)
for(j=0;j<m;++j)
s+=b[i][j];
return s;
}
void R(int r)
{
int i;
for(i=0;i<m;++i)
b[r][i]=-b[r][i];
}
void C(int c)
{
int i;
for(i=0;i<n;++i)
b[i][c]=-b[i][c];
}
int V(int c)
{
int s,f,i;
for(s=f=i=0;i<n;++i)
s+=b[i][c],f+=-b[i][c];
if(f>s)
return f-s;
return 0;
}
int W(int r)
{
int s,f,i;
for(s=f=i=0;i<m;++i)
s+=b[r][i],f+=-b[r][i];
if(f>s)
return f-s;
return 0;
}
int main()
{
for(F>>n>>m,i=0;i<n;++i)
for(j=0;j<m;++j)
F>>b[i][j];
do {
for(x=k=t=i=0;i<n;++i) {
r=W(i);
if(r>x)
x=r,k=i;
}
for(j=0;j<m;++j) {
r=V(j);
if(r>x)
x=r,k=j,t=1;
}
if(x>0) {
if(!t)
R(k);
else
C(k);
} else {
for(i=0;i<5;++i)
R(random()%n),C(random()%m);
}
s=U();
if(s>o)
o=s;
++l;
} while(l<500);
G<<o;
return 0;
}