#include<bits/stdc++.h>
using namespace std;
vector<long>vec[105],cost[105];
long sorc,desti;
long dist[105];
struct node
{
long u,w;
node(long a,long b)
{
u=a;
w=b;
}
bool operator < ( const node& p ) const
{
return w > p.w;
}
};
void dijkstra(long s)
{
priority_queue<node>pq;
dist[s]=0;
pq.push(node(s,0));
while(!pq.empty())
{
node top=pq.top();
pq.pop();
long u=top.u;
for(long i=0;i<(long)vec[u].size();i++)
{
long v=vec[u][i];
if(dist[u]+cost[u][i]<dist[v])
{
dist[v]=dist[u]+cost[u][i];
pq.push(node(v,dist[v]));
}
}
}
}
main()
{
long ts,cs=1;
cin>>ts;
while(ts--)
{
if(cs>1)
cout<<endl;
long i,n,e;
cin>>n>>desti>>sorc>>e;
for(long i=1; i<=n; i++)
dist[i]=100000000;
for(i=0;i<e;i++)
{
long u,v,w;
cin>>u>>v>>w;
vec[u].push_back(v);
vec[v].push_back(u);
cost[u].push_back(w);
cost[v].push_back(w);
}
long cnt=0;
dijkstra(desti);
for(i=1;i<=n;i++)
{
if(dist[i]<=sorc)
cnt++;
}
cs++;
cout<<cnt<<endl;
for(i=1;i<=n;i++)
{
cost[i].clear();
vec[i].clear();
}
}
}
using namespace std;
vector<long>vec[105],cost[105];
long sorc,desti;
long dist[105];
struct node
{
long u,w;
node(long a,long b)
{
u=a;
w=b;
}
bool operator < ( const node& p ) const
{
return w > p.w;
}
};
void dijkstra(long s)
{
priority_queue<node>pq;
dist[s]=0;
pq.push(node(s,0));
while(!pq.empty())
{
node top=pq.top();
pq.pop();
long u=top.u;
for(long i=0;i<(long)vec[u].size();i++)
{
long v=vec[u][i];
if(dist[u]+cost[u][i]<dist[v])
{
dist[v]=dist[u]+cost[u][i];
pq.push(node(v,dist[v]));
}
}
}
}
main()
{
long ts,cs=1;
cin>>ts;
while(ts--)
{
if(cs>1)
cout<<endl;
long i,n,e;
cin>>n>>desti>>sorc>>e;
for(long i=1; i<=n; i++)
dist[i]=100000000;
for(i=0;i<e;i++)
{
long u,v,w;
cin>>u>>v>>w;
vec[u].push_back(v);
vec[v].push_back(u);
cost[u].push_back(w);
cost[v].push_back(w);
}
long cnt=0;
dijkstra(desti);
for(i=1;i<=n;i++)
{
if(dist[i]<=sorc)
cnt++;
}
cs++;
cout<<cnt<<endl;
for(i=1;i<=n;i++)
{
cost[i].clear();
vec[i].clear();
}
}
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন