Cod sursa(job #1706549)

Utilizator Alin23Alin Dinu Alin23 Data 22 mai 2016 19:27:49
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

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

int n,m,x,y,c,i,j,viz[30001],a,b,d;

typedef struct lista
{
    int cost;
    int vecin;
    lista *next;
}lista;

lista *q;
lista *l[30001];

void rez(int nod, int dist)
{
    lista *p;
    if(nod==y)
    {
        fout<<dist<<'\n';
        exit(0);
    }
    viz[nod]=1;

    for( p=l[nod]; p!=NULL; p=p->next)
        if(!viz[p->vecin])
            rez(p->vecin, p->cost+dist);
}
int main()
{
    fin>>n>>m>>x>>y;
    for(i=1;i<=m;i++)
    {
        fin>>a>>b>>d;
        if(a>b)
            swap(a, b);
        q=new lista;
        q->cost=-d;
        q->vecin=a;
        q->next=l[b];
        l[b]=q;
        q=new lista;
        q->cost=d;
        q->vecin=b;
        q->next=l[a];
        l[a]=q;
    }
        rez(x,0);

    return 0;
}