Cod sursa(job #2845855)

Utilizator adrian1052Stan Adrian Marian adrian1052 Data 8 februarie 2022 14:53:37
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("sate.in");
ofstream fout("sate.out");

int q[30001];
int viz[30001];

struct nod {
    int vecin;
    int dist;
};
vector<nod> v[30001];
int distanta[30001];
int main() {
    int n, m,x, y;
    fin >> n >> m >> x >> y;
    int a, b, c;
    for(int i=1;i<=m;i++) {
        fin >> a >> b >> c;
        v[a].push_back({b, c});
        v[b].push_back({a, c});
    }
    int p = 1, r = 1;
    q[p] = x;
    viz[x] = 1;
    while(p <= r && viz[y] == 0) {
        int k = q[p];
        p++;
        for(int i=0;i<v[k].size();i++) {
            int nod = v[k][i].vecin;
            int d = v[k][i].dist;
            if(viz[nod] == 0) {
                if(nod > k)
                    distanta[nod] = distanta[k] + d;
                else
                    distanta[nod] = distanta[k] - d;
                viz[nod] = 1;
                q[++r] = nod;
            }
        }
    }
    fout << distanta[y];
    return 0;
}