Pagini recente » Cod sursa (job #258014) | Cod sursa (job #528137) | Cod sursa (job #1053442) | Cod sursa (job #48126) | Cod sursa (job #1193880)
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#define mx 30000
#define inf 2147483647
using namespace std;
int n,m,x,y;
vector< pair<int,int> > G[mx];
int best[mx];
ifstream f("sate.in");
ofstream g("sate.out");
void Initialisation()
{
for(int i=0;i<mx;i++)
{
best[i]=inf;
}
}
void Read()
{
f>>n>>m>>x>>y;
Initialisation();
for(int i=0;i<m;i++)
{
int a,b,d;
f>>a>>b>>d;
G[a].push_back( make_pair(b,d) );
G[b].push_back( make_pair(a,-d) );
}
}
void BFS(int curent)
{
for(int i=0;i<G[curent].size();i++)
{
if(best[ G[curent][i].first ] ==inf)
{
best[G[curent][i].first]=curent+G[curent][i].second;
BFS(G[curent][i].first);
}
}
}
int main()
{
Read();
BFS(x);
g<<best[y]+1;
/*int das=0xfffffff;
cout<<das;*/
return 0;
}
/*
int d, best[mx];
queue<int> Q;
for(Q.push(x) ; Q.size() ; Q.pop() )
{
for(int i=0;i<G[Q.back()].size();i++)//daca nu mere stim unde-i problema
{
int val;
val=( Q.back()<G[Q.back()][i].first() ) ? G[Q.back()][i].second() : -G[Q.back()][i].second();
best[G[Q.back()][i].first()]=
Q.push(G[Q.back()][i].first());
}
}
*/