Pagini recente » Cod sursa (job #792723) | Cod sursa (job #1906060) | Cod sursa (job #1494161) | Cod sursa (job #1856655) | Cod sursa (job #1219578)
#include<fstream>
#include<queue>
#include<vector>
#include<bitset>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
struct graf
{
short l;
int r;
};
vector<graf>v[30001];
queue<short>q;
int n,m,st,dr,x,y,c,i;
int d[30001];
bool viz[30001];
void bf(int nod)
{
viz[nod]=1;
q.push(nod);
int e=0;
while(!q.empty() && e==0)
{
int x=q.front();
q.pop();
vector<graf>::iterator it;
for(it=v[x].begin();it!=v[x].end();++it)
{
graf X=*it;
if (viz[X.l]==0)
{
d[X.l]=d[x]+X.r;
if (X.l==dr) {g<<d[X.l];e=1;break;}
q.push(X.l);
}
}
}
}
int main()
{
f>>n>>m>>st>>dr;
for (i=1;i<=m;++i)
{
f>>x>>y>>c;
graf X;X.l=y;X.r=c;
v[x].push_back(X);
X.l=x,X.r=-c;
v[y].push_back(X);
}
bf(st);
return 0;
}