Pagini recente » Cod sursa (job #1793032) | Cod sursa (job #574771) | Cod sursa (job #1656927) | Cod sursa (job #1085690) | Cod sursa (job #1497731)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
const int MAX = 30005;
vector < int > G[MAX];
vector < int > C[MAX];
bitset < MAX > trec;
deque < int > lx;
int D[MAX];
inline void dfs()
{
int x;
while(!lx.empty()){
x = lx.front();
lx.pop_front();
for(int i = 0; i < G[x].size(); i ++){
if(trec[G[x][i]] == 0){
trec[G[x][i]] = 1;
D[G[x][i]] = D[x] + C[x][i];
lx.push_back(G[x][i]);
}
}
}
}
int main()
{
int n,m,s,f,x,y,d;
fin >> n >> m >> s >> f;
for(int i = 0 ; i < m; i ++){
fin >> x >> y >> d;
if(x < y){
G[x].push_back(y);
C[x].push_back(d);
d = -d;
G[y].push_back(x);
C[y].push_back(d);
}
else{
d = -d;
G[x].push_back(y);
C[x].push_back(d);
d = -d;
G[y].push_back(x);
C[y].push_back(d);
}
}
lx.push_back(s);
dfs();
fout << D[f];
return 0;
}