Cod sursa(job #2374411)

Utilizator munteanue28no one munteanue28 Data 7 martie 2019 18:29:52
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>
using namespace std;

	ifstream fi ("sate.in");
	ofstream fo ("sate.out");
	
	typedef struct nod {
		int info;
		int dist;
		nod *next;
	} *lista;
	
	int n,m,X,Y,q[30025];
	lista A[100025];
	
	void add (lista &p, int k, int q)
	{
		lista r = new nod;
		r->info = k;
		r->dist = q;
		r->next = p;
		p=r;
	}
	
	int main () {
			
		int i,j,x,y,d;	
		fi>>n>>m>>X>>Y ; 
		
		while (m--){
			fi>>x>>y>>d;
			add (A[x],y,d);
		}
	
	q[X]=1; lista r= new nod;
	while(!q[Y])
    {
		for (i=1; i<=n; ++i)
        {
        	r=A[i];
            while (r)
            {
            	if(q[i] && !q[r->info])
                {
                    q[r->info]=q[i]+r->dist;
                }
            	else
                	if(!q[i] && q[r->info])
                    {
                       	q[i]=q[r->info]-r->dist;
                   	}
            r=r->next;
            }
        } 
	}
		
		fo<<q[Y]-1;
		
	return 0;	
}