Cod sursa(job #2465657)

Utilizator vvlad02Vlad Fintina vvlad02 Data 30 septembrie 2019 18:03:29
Problema Sate Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<iostream>
#include<stdio.h>
#include<fstream>
#include<queue>
#include<vector>
#include <list>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
vector <pair <int,int> >a[100025];
queue  <int > c;
int distanta,p,viz[100025],N,M,X,Y,D;
int i,j,k;
int parcurg(int i)
{
	viz[i]=1;
	int j,v,d;

	c.push(i);
	while(c.size())
	{
	    p=c.front();c.pop();
		for(j=0;j<a[p].size();j++)
			{
			    v=a[p][j].first;
			    d=a[p][j].second;
			if(viz[v]==0)
			{
				viz[v]=1;
				c.push(v);
				if(p>v)
                    distanta=distanta-d;
                else
                    distanta=distanta+d;
			    if(v==Y)
                    break;
                }

			}

	}
}
int main()
{
    f>>N>>M>>X>>Y;
    for(k=1;k<=M;k++)
    {
        f>>i>>j>>D;
        a[i].push_back({j,D});
        a[j].push_back({i,D});
    }
    parcurg(X);
    cout<<distanta;

    return 0;
}