比赛 10101115 评测结果 AAAAAAAATT
题目名称 最小密度路径 最终得分 80
用户昵称 郭乾乐 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-11-15 11:14:48
显示代码纯文本
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;
int main()
{
	ifstream fin("path.in");
	ofstream fout("path.out");
	long long n,m,i,j,k,r,x,y,z;
	double a[51][51][51];
	fout<<fixed<<setprecision(3);
	fin>>n>>m;
	for(r=1;r<=n;r++)
	    for(i=1;i<=n;i++)
		    for(j=1;j<=n;j++)
			    a[r][i][j]=999999999;
	for(i=1;i<=m;i++)
	{
		fin>>x>>y>>z;
		if(z<a[1][x][y])
			a[1][x][y]=z;
	}
	for(r=2;r<=n;r++)
	    for(i=1;i<=n;i++)
		    for(j=1;j<=n;j++)
			    for(k=1;k<=n;k++)
				    if(a[r-1][i][k]+a[1][k][j]<a[r][i][j])
					    a[r][i][j]=a[r-1][i][k]+a[1][k][j];
	int q;
	double ee,sum=999999999;
	ee=sum;
	fin>>q;
	for(i=1;i<=q;i++)
	{
		sum=999999999;
		fin>>x>>y;
		for(j=1;j<=n;j++)
			if(a[j][x][y]/j<sum&&a[j][x][y]<999999999)
				sum=a[j][x][y]/j;
		if(sum!=ee)
			fout<<sum<<endl;
		else
			fout<<"OMG!"<<endl;
	}
	return 0;
}