Cod sursa(job #2551883)

Utilizator Iulia25Hosu Iulia Iulia25 Data 20 februarie 2020 12:13:16
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;

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

struct Nod	{
	int et, cost;
	Nod *adr;
} *L[30005];

int n, m, X, Y, x, y, c;
int marcat[30005];

void dfs(int nod)	 {
	for (Nod *a = L[nod]; a != NULL; a = a -> adr)	{
		if (marcat[a -> et] || a -> et == X)
			continue;
		marcat[a -> et] = marcat[nod] + a -> cost;
		dfs(a -> et);
    if (a -> et == Y)	 {
			fout << marcat[a -> et];
			exit(0);
		}
	}
}

int main()	{
  fin >> n >> m >> X >> Y;
  for (int i = 1; i <= m; ++i)	{
		fin >> x >> y >> c;
    Nod *p = new Nod;
    p -> et = y;
    p -> cost = c;
    p -> adr = L[x];
    L[x] = p;
    p = new Nod;
    p -> et = x;
    p -> cost = - c;
    p -> adr = L[y];
    L[y] = p;
	}
	dfs(X);
}