Cod sursa(job #2374332)

Utilizator munteanue28no one munteanue28 Data 7 martie 2019 18:03:13
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 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 i,j,x,y,d,n,m,X,Y,q[100025];
	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 () {
			
		fi>>n>>m>>X>>Y ; 
		
		while (m--)
		{
			fi>>x>>y>>d;
			add (A[x],y,d);
		}
	
	q[X]=1;
		
	while(q[Y] == 0)
    {
    	lista r= new nod;
        for(int i = 1;i <= n; ++i)
            {
            	r=A[i];
            	while (r)
            	{
            		if(q[i] != 0 && q[r->info] == 0)
                	{
                    	q[r->info]=q[i]+r->dist;
                	}
            		else
                		if(q[i]==0 && q[r->info] !=0 )
                    	{
                        	q[i]=q[r->info]-r->dist;
                    	}
                    r=r->next;
            	}
            } 
	}
		
		fo<<q[Y]-1;

	return 0;	
}