Cod sursa(job #54658)

Utilizator FlorianFlorian Marcu Florian Data 25 aprilie 2007 14:25:26
Problema Cc Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#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;}