Pagini recente » Cod sursa (job #1037191) | Cod sursa (job #1834418) | Cod sursa (job #1684970) | Cod sursa (job #2507632) | Cod sursa (job #2868608)
#include<bits/stdc++.h>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int n,m,x2,y2,viz[30002],s=0;
vector< pair<int,int> >v[30002];
vector< pair<int,int> >w[30002];
queue< pair<int,int> >q;
void bfs(int x)
{
viz[x]=1;
q.push(make_pair(x,0));
while(!q.empty())
{
int nod=q.front().first;
q.pop();
for(auto it:v[nod])
{
if(viz[it.first]==0)
{
int nou=it.first;
int cost=it.second;
s+=cost;
viz[nou]=1;
q.push(make_pair(nou,cost));
}
}
for(auto it:w[nod])
{
if(viz[it.first]==0)
{
int nou1=it.first;
int c1=it.second;
s-=c1;
viz[nou1]=1;
q.push(make_pair(nou1,c1));
}
}
}
}
int main()
{
int i,x,y,c;
f>>n>>m>>x2>>y2;
for(i=1; i<=m; i++)
{
f>>x>>y>>c;
v[x].push_back(make_pair(y,c));
w[y].push_back(make_pair(x,c));
}
bfs(x2);
g<<s;
return 0;
}