Mai intai trebuie sa te autentifici.
Cod sursa(job #3372971)
| Utilizator | Data | 5 noiembrie 2026 18:31:43 | |
|---|---|---|---|
| Problema | Sate | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.15 kb |
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <cmath>
using namespace std;
ifstream fin("sate.in");
ofstream fout("sate.out");
struct Muchie {
int nodDestinatie;
int dist;
};
vector<Muchie> graf[30001];
int viz[30001];
int poz[30001];
int main()
{
int n,m,startX,finalY;
fin>>n>>m>>startX>>finalY;
for (int i=1;i<=m;i++)
{
int u,v,d;
fin>>u>>v>>d;
graf[u].push_back({v,d});
graf[v].push_back({u,-d});
}
queue<int> coada;
coada.push(startX);
viz[startX]=1;
poz[startX]=0;
while (!coada.empty())
{
int nodCurent=coada.front();
coada.pop();
if (nodCurent==finalY)
{
fout<<abs(poz[finalY])<<"\n";
return 0;
}
for(int i=0;i<graf[nodCurent].size();i++)
{
int vecin=graf[nodCurent][i].nodDestinatie;
int costMuchie = graf[nodCurent][i].dist;
if (viz[vecin]==0)
{
viz[vecin]=1;
poz[vecin]=poz[nodCurent]+costMuchie;
coada.push(vecin);
}
}
}
return 0;
}