Pagini recente » Cod sursa (job #2717278) | Cod sursa (job #219626) | Cod sursa (job #956307) | Cod sursa (job #2287465) | Cod sursa (job #1739899)
#include <iostream>
#include<fstream>
#include<vector>
#include<bitset>
#include<string>
using namespace std;
const int nmax=250005;
vector<pair <int,int > > v[nmax],a[5005];
bitset<nmax> viz;
int n,m,x,y,node1,node2,k,mn,i,j,num,c;
string s;
int getnum()
{
num=0;
while(s[c]>='0'&&s[c]<='9')
num=num*10+s[c]-'0',c++;
c++;
return num;
}
int main()
{
ifstream f("pscnv.in");
ofstream g("pscnv.out");
f>>n>>m>>x>>y;f.get();
for(i=1;i<=m;i++)
{
c=0;
getline(f,s);
node1=getnum();
node2=getnum();
k=getnum();
v[node1].push_back(make_pair(node2,k));
a[k].push_back(make_pair(node1,node2));
}
viz[x]=1;
for(i=1;i<=5000&&viz[y]==0;i++)
for(j=0;j<a[i].size()&&viz[y]==0;j++)
{
node1=a[i][j].first;
node2=a[i][j].second;
if(viz[node1]&&viz[node2]==0)
{
viz[node2]=1;
for(k=0;k<v[node2].size();k++)
{
if(v[node2][k].second<=i)
a[i].push_back(make_pair(node2,v[node2][k].first));
}
}
if(viz[y]) mn=i;
}
g<<mn;
return 0;
}