比赛 10101115 评测结果 AEWWEEEEEE
题目名称 最小密度路径 最终得分 10
用户昵称 Citron酱 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-11-15 09:55:22
显示代码纯文本
#include <iostream>
#include <fstream>

#define I_F "path.in"
#define O_F "path.out"
#define MAX 51

using namespace std;

long map[MAX][MAX];
bool f[MAX][MAX]={{false}};
short n,m;
double ans;

ifstream fin(I_F);

void Input();
void Dfs(short x, short y, short l, long s);
void Search();

int main()
{
	Input();
	Search();
	return 0;
}

void Input()
{
	fin>>n>>m;
	short i,x,y;
	for (i=0; i<m; i++)
	{
		fin>>x>>y;
		fin>>map[x][y];
		f[x][y]=true;
	}
}

void Dfs(short x, short y, short l, long s)
{
	if (x!=y)
	{
		for (short i=1; i<=n; i++)
			if (f[x][i])
				Dfs(i,y,l+1,s+map[x][i]);
	}
	else
		if ((double)s/l<ans)
			ans=(double)s/l;
}

void Search()
{
	long q,i;
	short x,y;
	fin>>q;
	ofstream fout(O_F);
	fout.setf(ios::fixed);
	fout.precision(3);
	for (i=0; i<q; i++)
	{
		fin>>x>>y;
		ans=2000000000;
		Dfs(x,y,0,0);
		if (ans<2000000000)
			fout<<ans<<'\n';
		else
			fout<<"OMG!\n";
	}
	fout.close();
	fin.close();
}