Pagini recente » Cod sursa (job #1953071) | Cod sursa (job #1281657) | Cod sursa (job #2009008) | Cod sursa (job #2160751) | Cod sursa (job #1305583)
#include<stdio.h>
int st[100],k,i,j,n,m,as,ev;
long long int max=-32000001,a[100][100],s;
FILE *f=fopen("flip.in","r");
FILE *g=fopen("flip.out","w");
void init(void)
{
st[k]=-2;
}
void succesor()
{
if (st[k]<0&&k<=m+n)
{
st[k]++;
as=1;
}
else
as=0;
}
void valid(void)
{
ev=1;
}
int solutie(int k)
{
if(k==(m+n))
return 1;
else
return 0;
}
int main()
{
fscanf(f,"%d%d",&m,&n);
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
fscanf(f,"%lld",&a[i][j]);
k=1;
init();
while(k>0)
{
do
{
succesor();
if (as)
valid();
}
while ((as) && (!as || !ev));
if (as)
{
if (solutie(k))
{
s=0;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
if((st[i]==-1&&st[m+j]==0)||(st[i]==0&&st[m+j]==-1))
s=s-a[i][j];
else
s=s+a[i][j];
if(s>max)
max=s;
}
else
{
k++;
init();
}
}
else
{
k--;
}
}
fprintf(g,"%lld",max);
return 0;
}