Pagini recente » Cod sursa (job #274396) | Cod sursa (job #640536) | Cod sursa (job #1428632) | Cod sursa (job #562795) | Cod sursa (job #1814566)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
struct elem
{
int nod,cost;
};
vector <elem> v[30005];
int d[30005],n,m,s,f;
void citire ()
{
int x,y,c;
fin>>n>>m>>s>>f;
for(int i=1;i<=m;i++)
{
fin>>x>>y>>c;
elem t;
t.nod=y;
t.cost=c;
v[x].push_back(t);
t.nod=x;
t.cost=-c;
v[y].push_back(t);
}
}
void bfs (int x)
{
int p=1,u=1,c[30005];
c[p]=x;
d[x]=-1;
while(p<=u)
{
x=c[p];
p++;
for(int i=0;i<v[x].size();i++)
{
elem t;
t=v[x][i];
if(d[t.nod]==0)
{
d[t.nod]=d[x]+t.cost;
u++;
c[u]=t.nod;
}
}
}
}
int main()
{
citire();
bfs(s);
fout<<d[f]+1;
return 0;
}