Pagini recente » Cod sursa (job #1812359) | Cod sursa (job #1648272) | Cod sursa (job #1571532) | Cod sursa (job #2761041) | Cod sursa (job #1752325)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
vector<int> a[30003];
vector<long> distanta[30003];
int coada[30003];
long pana[30003];
int n,m,x,y;
void parcurgere(int start)
{
int inceput,sfarsit;
inceput=sfarsit=1;
coada[inceput]=start;
while(inceput<=sfarsit)
{
for(int i=0;i<a[coada[inceput]].size();i++)
{
if(pana[a[coada[inceput]][i]]==0)
{
pana[a[coada[inceput]][i]]=pana[coada[inceput]]+distanta[coada[inceput]][i];
sfarsit++;
coada[sfarsit]=a[coada[inceput]][i];
if(a[coada[inceput]][i]==y)
{
ofstream g("sate.out");
g<<pana[a[coada[inceput]][i]];
inceput=sfarsit+1;
break;
}
}
}
inceput++;
}
}
int main()
{
ifstream f("sate.in");
f>>n>>m>>x>>y;
for(int i=0;i<m;i++)
{
int o1,o2,dist;
f>>o1>>o2>>dist;
a[o1].push_back(o2);
a[o2].push_back(o1);
if(o1<o2)
{distanta[o1].push_back(dist);
distanta[o2].push_back(-dist);}
else
{distanta[o1].push_back(-dist);
distanta[o2].push_back(dist);}
}
parcurgere(x);
}