Cod sursa(job #2390135)

Utilizator 88marin88Marin Marian 88marin88 Data 27 martie 2019 19:42:43
Problema Sate Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;
 
ifstream fin ("sate.in");
ofstream fout ("sate.out");
	
typedef struct nod {
	int info;
	int d;
	nod *next;
	} *lista;
	
	int n,m,xx,yy,q[30001];
	lista a[100025];
	
void add (lista &p, int k, int q){
	lista r=new nod;
	r->info=k;
	r->d=q;
	r->next=p;
	p=r;
}
	
int main(){	
	int i,j,x,y,d;	
	fin>>n>>m>>xx>>yy; 
	while (m--){
		fin>>x>>y>>d;
		add (a[x],y,d);
		}
	
	q[xx]=1; lista r= new nod;
	while(!q[yy]){
		for (i=1; i<=n; ++i){
        	r=a[i];
            while (r){
            	if(q[i] && !q[r->info]){
                    q[r->info]=q[i]+r->d;
                }
            	else
                	if(!q[i] && q[r->info]){
                       	q[i]=q[r->info]-r->d;
                   	}
            r=r->next;
            }
        } 
	}	
	fout<<q[yy]-1;	
}