Pagini recente » Istoria paginii runda/gim_sim_3/clasament | Cod sursa (job #2277566) | Cod sursa (job #686876) | Cod sursa (job #3201130) | Cod sursa (job #1706549)
#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;
}