Cod sursa(job #2381861)

Utilizator S_DanSochirca Dan S_Dan Data 17 martie 2019 13:46:39
Problema Sate Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
using namespace std;

int n,m,x,y,k;
int inc,sf,dist;
vector < pair<int,int> > v[30010];
queue <int> q;
int a[30010];
bool viz[30010];

void bfs(int nod){
	q.push(nod);
	viz[nod]=1;
	while(!q.empty()){

		int nod=q.front();
		q.pop();
		for(int i=0; i<v[nod].size(); i++){
            int x=v[nod][i].first;
            int d=v[nod][i].second;
			if(!viz[x]){
                q.push(x);
                viz[x]=1;
                a[x]=a[nod]+d;
			}
			if (x==sf) return;
		}
	}
}

int main(){
    freopen("sate.in","r",stdin);
    freopen("sate.out","w",stdout);

	cin>>n>>m>>inc>>sf;
	for(int i=1;i<=m;i++){
		cin>>x>>y>>dist;
		v[x].push_back(make_pair(y,dist));
		v[y].push_back(make_pair(x,-dist));
	}
    bfs(inc);
    cout<<a[sf];
}