Cod sursa(job #2754935)

Utilizator BalaBossBalaBoss BalaBoss Data 26 mai 2021 18:00:46
Problema PScNv Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <bits/stdc++.h>
#define N 100005
#define f first
#define s second
#define INF 0x3F3F3F3F

using namespace std;

ifstream fin ("pscnv.in");
ofstream fout ("pscnv.out");

    vector< pair<int,int> > g[N];
    int n,m,p,q,x,y,z;
    int v[N],st[N],dt[N];
    int vmin=INF;


void Citire()
{
    fin>>n>>m>>p>>q;
    for(int i=1;i<=m;++i)
    {
        fin>>x>>y>>z;
        g[x].push_back(make_pair(y,z));
    }
}


void Cmin(int k)
{
    int vmax=0;
    for(int i=1;i<=k-1;++i)
        if(dt[i]>vmax)vmax=dt[i];
    vmin=vmax;
}

void Back(int k)
{
    for(int i=0;i<g[st[k-1]].size();i++)
    {
        int nod=g[st[k-1]][i].f;
        int dist=g[st[k-1]][i].s;
        if(v[nod]==0&&dist<vmin)
        {
            v[nod]=1;
            st[k]=nod;
            dt[k-1]=dist;
            if(nod==q)Cmin(k);
            else Back(k+1);
            v[nod]=0;
        }
    }
}

int main()
{

    Citire();

    v[p]=1;
    st[1]=p;

    Back(2);
    fout<<vmin;

    return 0;
}