Pagini recente » Cod sursa (job #463220) | Cod sursa (job #1396211) | Cod sursa (job #1026063) | Cod sursa (job #1113201) | Cod sursa (job #1708294)
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
int N,M,X,Y;
int i,j,D;
int ap[30001],k;
bool ok=true;
struct Sat
{ int sat,lungime; };
vector<Sat> v[30001];
void BK(int r, int d)
{
if(ok)
{
if(r==Y)
{
g<<d<<endl;
ok=false;
}
else
for(vector<Sat>::iterator aux=v[r].begin();aux!=v[r].end();++aux)
{
if(!ap[aux->sat])
{ap[aux->sat]=1;
BK(aux->sat,d+aux->lungime);}
}
}
}
int main()
{
f>>N>>M>>X>>Y;
for(k=1;k<=M;k++)
{
f>>i>>j>>D;
ap[i]=0;
ap[j]=0;
Sat s1,s2;
s1.sat=j;
s1.lungime=D;
s2.sat=i;
s2.lungime=-D;
v[i].push_back(s1);
v[j].push_back(s2);
}
ap[X]=true;
BK(X,0);
f.close();
g.close();
return 0;
}