Pagini recente » Cod sursa (job #676412) | Cod sursa (job #2706417) | cnmnarad | Cod sursa (job #3251445) | Cod sursa (job #57075)
Cod sursa(job #57075)
#include<stdio.h>
int 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,"%d %d",&n,&m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fscanf(f,"%d",&a[i][j]);
totsum+=a[i][j];
s[i]+=a[i][j];
sc[j]+=a[i][j];} }
}
void check(int p)
{
int sum,i,j;
sum=totsum;
for(i=1;i<=p;i++)
{
sum-=2*sc[st[i]];
}
if(sum>smax) smax=sum;
}
int valid(int p)
{
if(p>1&&st[p]<=st[p-1]) return 0;
else return 1;
}
void bkt(int p)
{
int 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,"%d",smax);
}