Pagini recente » Cod sursa (job #1789551) | Cod sursa (job #2119388) | Cod sursa (job #2802881) | Cod sursa (job #670240) | Cod sursa (job #1912186)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
int x, y, n, d=0;
vector <pair<int, int> > g[30001];
void citire()
{
int m, i, j, c;
fin>>n>>m>>x>>y;
while(m)
{
m--;
fin>>i>>j>>c;
g[i].push_back(make_pair(j, c));
g[j].push_back(make_pair(i, c));
}
fin.close();
}
void bfs()
{
queue <int> q;
int k;
vector <pair<int, int> > :: iterator it;
bool viz[30001]={0};
q.push(x);
viz[x]=1;
while(!q.empty())
{
k=q.front();
q.pop();
for(it=g[k].begin(); it!=g[k].end(); it++)
if(!viz[it->first])
{
viz[it->first]=1;
q.push(it->first);
if(it->first>k)
d+=it->second;
else if(it->first<k)
d-=it->second;
if(it->first==y)
{
fout<<d<<endl;
return;
}
}
}
}
int main()
{
citire();
bfs();
return 0;
}