Pagini recente » Cod sursa (job #449049) | Cod sursa (job #786474) | Cod sursa (job #2360879) | Cod sursa (job #1377415) | Cod sursa (job #403832)
Cod sursa(job #403832)
#include<fstream>
#include<iostream>
#include<vector>
#define Nmax 30001
using namespace std;
vector<int> G[Nmax],D[Nmax];
int n,m, a, b;
int cost[Nmax],vizitat[Nmax],c[Nmax];
void citire()
{
int i, km, x, y;
ifstream f("sate.in");
f>>n>>m>>a>>b;
for(i=1;i<=m;i++)
{
f>>x>>y>>km;
G[x].push_back(y);
G[y].push_back(x);
D[x].push_back(km);
D[y].push_back(-km);
}
f.close();
}
void bfs(int nod)
{
int li,ls,i,vecini,sat;
li=1;ls=1;
c[li]=nod;
cost[nod]=1;
while(c[li]!=b)
{
vecini=G[c[li]].size();
for(i=0;i<vecini;i++)
{ sat=G[c[li]][i];
if(/*!vizitat[sat]*/cost[sat]==0)
{
ls++;
c[ls]=sat;
//vizitat[sat]=1;
cost[sat]=cost[c[li]]+D[c[li]][i];
}
}
li++;
}
}
int main()
{
citire();
bfs(a);
ofstream g("sate.out");
g<<cost[b]-1;
g.close();
return 0;
}