Pagini recente » Cod sursa (job #2065561) | Cod sursa (job #1575819) | Cod sursa (job #2892677) | Cod sursa (job #2638752) | Cod sursa (job #54658)
Cod sursa(job #54658)
#include<stdio.h>
#include<values.h>
int st[101],n,a[101][101],smax=32000,s;
FILE*g=fopen("cc.out","w");
void initializari()
{
int i,j;
FILE*f=fopen("cc.in","r");
fscanf(f,"%d",&n);
st[0]=0;
for(i=1;i<=n;i++)
{
st[i]=0;
for(j=1;j<=n;j++) fscanf(f,"%d",&a[i][j]);
}
}
void max(int p)
{
if(s+a[p][st[p]]<smax) smax=s+a[p][st[p]];
}
int valid(int p)
{
int i,ok;
ok=1;
s=0;
for(i=1;i<p;i++)
if (st[i]==st[p]) {ok=0; break;}
else s+=a[i][st[i]];
return ok;
}
void bkt(int p)
{
int pval;
for(pval=1;pval<=n;pval++)
{
st[p]=pval;
if (valid(p))
{
if (p==n) max(p);
else bkt(p+1);
}
}
}
int main()
{
initializari();
bkt(1);
fprintf(g,"%d",smax);
return 0;}