0
#include<iostream>
#include<cstring>
using namespace std;
bool vis[510];
int n,m,x,dis[510],g[510][510];
void dijkstra(int s){
memset(vis,-1,sizeof(vis));
memset(dis,0x3f,sizeof(dis));
dis[s]=0;
while(true){
int u=-1;
for(int i=1;i<=n;i++)
if(!vis[i]&&(u==-1||dis[i]<dis[u]))
u=i;
if(u==-1)break;
vis[u]=1;
for(int i=1;i<=n;i++)
if(dis[u]+g[u][i]<dis[i]){
dis[i]=dis[u]+g[u][i];
}
}
}
int main(){
cin>>n>>m>>x;
int u,v,l,c;
for(int i=1;i<=m;i++){
cin>>u>>v>>l>>c;
g[u][v]=g[v][u]=l+x/c;
}
dijkstra(1);
cout<<dis[n];
}
为什么连样例都过不去