Pagini recente » Cod sursa (job #2403766) | Cod sursa (job #2969335) | Cod sursa (job #352185) | Cod sursa (job #45071) | Cod sursa (job #1752352)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
vector<int> a[30003];
vector<int> distanta[30003];
int coada[30003];
int pana[30003];
int n,m,x,y,num,ce;
string str;
void parcurgere(int start)
{
int inceput,sfarsit;
inceput=sfarsit=1;
coada[inceput]=start;
while(inceput<=sfarsit)
{
for(int i=0;i<a[coada[inceput]].size();i++)
{
if(pana[a[coada[inceput]][i]]==0)
{
if(a[coada[inceput]][i]==y)
{
ofstream g("sate.out");
g<<pana[coada[inceput]]+distanta[coada[inceput]][i];
return;
}
pana[a[coada[inceput]][i]]=pana[coada[inceput]]+distanta[coada[inceput]][i];
sfarsit++;
coada[sfarsit]=a[coada[inceput]][i];
}
}
inceput++;
}
}
int getnum()
{
num=0;
while(str[ce]>='0'&&str[ce]<='9')
{num=num*10+str[ce]-'0';ce++;}
ce++;
return num;
}
int main()
{
ifstream f("sate.in");
f>>n>>m>>x>>y;
f.get();
for(int i=0;i<m;i++)
{
int o1,o2,dist;
ce=0;
getline(f,str);
o1=getnum();
o2=getnum();
dist=getnum();
a[o1].push_back(o2);
a[o2].push_back(o1);
if(o1<o2)
{distanta[o1].push_back(dist);
distanta[o2].push_back(-dist);}
else
{distanta[o1].push_back(-dist);
distanta[o2].push_back(dist);}
}
parcurgere(x);
}