Pagini recente » Cod sursa (job #2328184) | Cod sursa (job #1486426) | Cod sursa (job #1028268) | Cod sursa (job #703221) | Cod sursa (job #57097)
Cod sursa(job #57097)
#include<stdio.h>
long st[17],n,k,m,a[17][17],s[17],sc[17],smax,totsum=0;
FILE*g=fopen("flip.out","w");
void initializari()
{
int i,j;
FILE*f=fopen("flip.in","r");
fscanf(f,"%ld %ld",&n,&m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fscanf(f,"%ld",&a[i][j]);
totsum+=a[i][j];
s[i]+=a[i][j];
sc[j]+=a[i][j];} }
}
void check(long p)
{
long sum,i,j;
sum=totsum;
for(i=1;i<=p;i++)
{
sum-=2*sc[st[i]];
}
if(sum>smax) smax=sum;
}
int valid(long p)
{
if(p>1&&st[p]<=st[p-1]) return 0;
else return 1;
}
void bkt(long p)
{
long pval;
for(pval=1;pval<=m;pval++)
{
st[p]=pval;
if (valid(p))
{
if (p==k) check(p);
else bkt(p+1);
}
}
}
int main()
{
initializari();
k=1;
while(k<=m)
{
bkt(1);
k++;}
fprintf(g,"%ld",smax);
}