Pagini recente » Cod sursa (job #2849861) | Cod sursa (job #1297262) | Cod sursa (job #2040681) | Cod sursa (job #1834719) | Cod sursa (job #1053428)
#include <fstream>
#include <queue>
#include <vector>
#define PII pair<int,int>
#define st first
#define nd second
#define MP make_pair
using namespace std;
vector< PII > G[30002];
ifstream fin("sate.in");
ofstream fout("sate.out");
int N, M, X, Y, D[30002];
int bfs()
{
queue<int> Q;
int nod;
Q.push(X);
while (!Q.empty())
{
nod = Q.front(), Q.pop();
for (vector< PII >::const_iterator w = G[nod].begin(); w != G[nod].end(); ++w)
if (D[w->st] == 0 && w->st != X)
D[w->st] = D[nod] + w->nd, Q.push(w->st);
}
return D[Y];
}
void read_data()
{
int a, b, c;
fin >> N >> M >> X >> Y;
for (; M; M--)
{
fin >> a >> b >> c;
G[a].push_back(MP(b, c));
G[b].push_back(MP(a, -c));
}
}
int main()
{
read_data();
fout << bfs() << '\n';
return 0;
}