Cod sursa(job #3146566)

Utilizator sireanu_vladSireanu Vlad sireanu_vlad Data 21 august 2023 17:57:49
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<iostream>
#include<vector>
#include<queue>
#include <cstring>
using namespace std;

const int NMAX=3e4;
struct segment{
	int nod,cost;
};
vector<segment> g[NMAX+1];
int d[NMAX+1];
bool viz[NMAX+1];

int main(){
	freopen("sate.in","r",stdin);
	freopen("sate.out","w",stdout);
	int n,m,x,y;
	cin>>n>>m>>x>>y;
	while(m--){
		int a,b,c;
		cin>>a>>b>>c;
		g[a].push_back({b,c});
		g[b].push_back({a,c});
	}
	queue<int> q;
	q.push(x);
	viz[x]=1;
	for(;!q.empty();q.pop()){
		int x=q.front();
		for(auto i:g[x]){
			if(!viz[i.nod]){
				viz[i.nod]=1;
				q.push(i.nod);
				if(x<i.nod){
					d[i.nod]=d[x]+i.cost;
				}else{
					d[i.nod]=d[x]-i.cost;
				}
			}
		}
	}
	cout<<d[y];
}