Cod sursa(job #1491935)

Utilizator andreiudilaUdila Andrei andreiudila Data 26 septembrie 2015 17:19:44
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 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;

struct nod{
    int cost;
    int vecin;
    nod *next;
};

  typedef nod* 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 nod;
        q->cost=-d;
        q->vecin=a;
        q->next=l[b];
        l[b]=q;

        q=new nod;
        q->cost=d;
        q->vecin=b;
        q->next=l[a];
        l[a]=q;
    }
        rez(x,0);

    return 0;
}