Pagini recente » Cod sursa (job #1269825) | Cod sursa (job #374315) | Cod sursa (job #2474648) | Cod sursa (job #353402) | Cod sursa (job #1159512)
#include <cstdio>
using namespace std;
int n,m,i,aux,v[16][16],j,min=0,k,ok,sum=0,sumc[16],suml[16],c[16][2],l[16][2];
void functie()
{
if(ok==0)
{ for(i=0;i<n;i++)
{
if(v[i][min]<0)
{
l[i][0]+=v[i][min];
l[i][1]-=v[i][min];
}
else
{
l[i][0]-=v[i][min];
l[i][1]-=v[i][min];
}
if(l[i][0]<min) {min=i;ok=1;}
}
aux=c[min][0];
c[min][0]=c[min][1];
c[min][1]=aux;
if(c[j][0]<min) {min=j;ok=0;}
}
else
{
for(j=0;j<m;j++)
{
if(v[min][j]<0)
{
c[j][0]-=v[min][j];
c[j][1]-=v[min][j];
}
else
{
c[j][0]-=v[min][j];
c[j][1]-=v[min][j];
}
if(c[j][0]<min) {min=j;ok=0;}
}
aux=l[min][0];
l[min][0]=l[min][1];
l[min][1]=aux;
if(l[i][0]<min) {min=i;ok=1;}
if(ok==0)
{ if(sum+(-c[min][0])-c[min][1]>sum)
{
sum=sum+(-c[min][0])-c[min][1];min=1000000;
functie();
}
else printf("%d",sum);
}
else
{
if(sum+(-l[min][0])-l[min][1]>sum)
{
sum=sum+(-l[min][0])-l[min][1];
min=1000000;
functie();
}
else printf("%d",sum);
}
}
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&k);
sum+=k;
v[i][j]=k;
if(k<0)
{
l[i][0]+=k;
c[j][0]+=k;
}
else
{
l[i][1]+=k;
c[j][1]+=k;
}
}
if(l[i][0]<min) {min=i;ok=1;}
}
for(j=0;j<m;j++)
{
if(c[j][0]<min) {min=j;ok=0;}
}
if(ok==0)
{ if(sum+(-c[min][0])-c[min][1]>sum)
{
sum=sum+(-c[min][0])-c[min][1];min=1000000;
functie();
}
else printf("%d",sum);
}
else
{
if(sum+(-l[min][0])-l[min][1]>sum)
{
sum=sum+(-l[min][0])-l[min][1];min=1000000;
functie();
}
else printf("%d",sum);
}
}