| 记录编号 | 
        21869 | 
        评测结果 | 
        AAAAAAAAWW | 
    
    
        | 题目名称 | 
        501.最小密度路径 | 
        最终得分 | 
        80 | 
            
    
    
        | 用户昵称 | 
         郭乾乐 | 
        是否通过 | 
        未通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        2.428 s  | 
    
    
        | 提交时间 | 
        2010-11-15 17:40:52 | 
        内存使用 | 
        1.21 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#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;
}