Pagini recente » Cod sursa (job #1204097) | Cod sursa (job #858029) | Cod sursa (job #1598637) | Cod sursa (job #1946039) | Cod sursa (job #2184262)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int n,m,viz[30003],x,y,dist[30003],distanta;
vector<pair<int,int> >v[30003];
queue<int>coada;
void bfs(int nod)
{
coada.push(nod);
viz[nod]=1;
while(!coada.empty())
{
int x=coada.front();
coada.pop();
for(vector<pair<int,int> > :: iterator it=v[x].begin();it!=v[x].end();it++)
{
if(viz[it->first]==0)
{
dist[it->first]=dist[x]+it->second;
viz[it->first]=1;
coada.push(it->first);
}
if(it->first==y)
distanta=dist[y];
}
}
}
int main()
{
fin>>n>>m>>x>>y;
int x1,y1,d1;
for(int i=1;i<=m;i++)
{
fin>>x1>>y1>>d1;
v[x1].push_back(make_pair(y1,d1));
v[y1].push_back(make_pair(x1,d1));
}
bfs(x);
fout<<distanta;
}