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