Pagini recente » Cod sursa (job #1171410) | Cod sursa (job #2964537) | Cod sursa (job #2786617) | Cod sursa (job #2477122) | Cod sursa (job #1082555)
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
vector < pair < int, int> > dist[30001];
queue <int> Q;
bool marc[30001];
int suma[30001];
void bfs(int nod)
{
Q.push(nod);
marc[nod]=1;
while(!Q.empty())
{
int huh=Q.front();
for(int ji=0;ji<dist[huh].size();++ji)
if(marc[dist[huh][ji].first]==0)
{
Q.push(dist[huh][ji].first);
marc[dist[huh][ji].first]=1;
suma[dist[huh][ji].first]=suma[huh]+dist[huh][ji].second;
}
Q.pop();
}
}
int main()
{
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,x,y,i,nod1,nod2,km;
f>>n>>m>>x>>y;
for(i=1;i<=m;++i)
{
f>>nod1>>nod2>>km;
dist[nod1].push_back(make_pair(nod2,km));
dist[nod2].push_back(make_pair(nod1,-km));
}
bfs(x);
g<<suma[y];
f.close();
g.close();
return 0;
}