Cod sursa(job #54652)

Utilizator FlorianFlorian Marcu Florian Data 25 aprilie 2007 14:04:58
Problema Cc Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
int st[101],n,a[101][101],smax=10000;
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<=100;i++)
		{
		st[i]=0;
		for(j=1;j<=n;j++) fscanf(f,"%d",&a[i][j]);
		}
	}
void sum(int p)
	{int i,s=0;
	for(i=1;i<=p;i++)
		s+=a[i][st[i]];
	if(s<smax) smax=s;}

int valid(int p)
	{
	int i,ok;
	ok=1;
	for(i=1;i<p;i++) if (st[i]==st[p]) {ok=0; break;}
	return ok;
	}
void bkt(int p)
	{
	int pval;
	for(pval=1;pval<=n;pval++)
		{
		st[p]=pval;
		if (valid(p))
			{
			if (p==n) sum(p);
			else bkt(p+1);
			}
		}
	}
int main()
	{
	initializari();
	bkt(1);
	fprintf(g,"%d",smax);
	return 0;}