Pagini recente » Cod sursa (job #1225095) | Cod sursa (job #2593218) | Cod sursa (job #929843) | Cod sursa (job #1512935) | Cod sursa (job #1311440)
#include <cstdio>
#include <fstream>
#include <vector>
#define nmax 30005
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,x,y,prim,ultim,d;
vector <int> v[nmax];
int a[nmax],c[nmax*5],q;
void bfs()
{
int p,u,i;
a[prim]=0;
c[1]=prim;
p=1;u=1;
while (p<=u) {
q=c[p];
for (i=0;i<v[q].size();i+=2) {
if (a[q]+v[q][i+1]<a[v[q][i]]) {
a[v[q][i]]=a[q]+v[q][i+1];
c[++u]=v[q][i];
}
}
p++;
}
}
int main()
{
int i,j;
f>>n>>m>>prim>>ultim;
for (i=1;i<=n;i++) a[i]=1<<30;
for (i=1;i<=m;i++) {
f>>x>>y>>d;
v[x].push_back(y);
v[x].push_back(d);
v[y].push_back(x);
v[y].push_back(-d);
}
bfs();
g<<a[ultim];
return 0;
}