比赛 |
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;
}