Cod sursa(job #2374395)

Utilizator munteanue28no one munteanue28 Data 7 martie 2019 18:23:24
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 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[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 () {
			
		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;
	while(q[Y] == 0)
    {
    	lista r= new nod;
    	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;	
}