Cod sursa(job #109918)

Utilizator rethosPaicu Alexandru rethos Data 25 noiembrie 2007 12:56:19
Problema Tunelul groazei Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 1, Clasele 11-12 Marime 0.64 kb
#include <fstream.h>
#define cmax 1001
#define kmax (n/2)*2+1
int a[26][26],n,v[200];
long long nr=0,dist=0;
void funct(int x,int k,int c)
{ if (k>n*(n-1)) return;
  if (x==n) { dist+=c;nr++;return;}
  int i;
  for (i=1;i<=n;i++)
	{ v[k]=i;
	  if (a[x][i]>0&&a[x][i]<cmax)
		funct(i,k+1,c+a[x][i]);
	}
}
int main()
{ long m;
  int i,j,x,y,c;
  ifstream f("tunel.in");
  f>>n>>m;
  for (i=1;i<=m;i++)
	{ f>>x>>y>>c;
	  a[x][y]=a[y][x]=c;
	}
  f.close();
  for (i=1;i<n;i++)
	for (j=i+1;j<=n;j++)
//		if (a[i][j]==0) a[i][j]=a[j][i]=cmax;
  funct(1,1,0);
  ofstream g("tunel.out");
  g<<(float)dist/nr;
  g.close();
  return 0;
}