Cod sursa(job #3300133)

Utilizator parrot279Sofi Tudose parrot279 Data 13 iunie 2025 09:39:55
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;
ifstream cin("sate.in");
ofstream cout("sate.out");
void cautare(int start);
vector<pair<int, int>> graf[100001];
int dist[100001];
int n, m, inc, sf;

int main()
{
    cin>>n>>m>>inc>>sf;
    for(int i = 1; i <= m; ++i)
    {
        int x, y, distanta;
        cin>>x>>y>>distanta;
        graf[x].push_back({y, distanta});
        graf[y].push_back({x, distanta});
    }
    cautare(inc);
    cout<<dist[sf];
    return 0;
}

void cautare(int start)
{
    queue<int> q;
    q.push(start);
    while(!q.empty())
    {
        int nod = q.front();
        q.pop();
        for(auto i : graf[nod])
        {
            if(i.first == start || dist[i.first] != 0)
                continue;
            if(i.first < nod)
                dist[i.first] = dist[nod] - i.second;
            else
                dist[i.first] = dist[nod] + i.second;
            q.push(i.first);
        }
    }
}