Cod sursa(job #3372277)

Utilizator mrvalentynTime Limit Exceeded mrvalentyn Data 2 noiembrie 2026 22:50:12
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <bits/stdc++.h>
using namespace std;

#define ll long long


const string FILENAME = "sate";
ifstream f(FILENAME + ".in");
ofstream g(FILENAME + ".out");

#ifndef dg
#define cin f
#define cout g 
#endif


vector<int> gg[30001];
int vz[30001];
int n,m,x,y;

int ds[30001];

map<pair<int,int>, int> w;



void dfs(int prev, int start) {
    vz[start] = 1;
    if(prev > 0)
        if(prev < start) ds[start] = ds[prev] + w[{prev,start}];
        else ds[start] = ds[prev] - w[{start,prev}]; 
        
    for(auto node : gg[start]) {
        if(!vz[node]) dfs(start, node);
    }

    
    
}

signed main() {    


    
    cin >> n >> m >> x >> y;

    for(int i=1;i<=m;++i) {
        int a,b,c;
        cin >> a >> b >> c;
        gg[a].push_back(b);
        gg[b].push_back(a);

        if(a > b) swap(a,b);
        w[{a,b}] = c;

    }
    dfs(-1,x);

    cout << ds[y] << '\n';



    return 0;
}