Cod sursa(job #3187147)

Utilizator AlexanderCernyCernaianu Alexandru AlexanderCerny Data 27 decembrie 2023 19:40:35
Problema Sate Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <vector>
#include <bitset>
#define DIM 30001

using namespace std;

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

vector <pair<int, int>>L[DIM];
int d[DIM],c[DIM];
bitset<DIM>v;
int n,m,i,j,p,u,x,y,a,b,dis;
int main()
{
    fin>>n>>m>>x>>y;
    if(x>y)
        swap(x,y);
    for(i=1;i<=m;i++)
    {
        fin>>a>>b>>dis;
        L[a].push_back(make_pair(b,dis));
        L[b].push_back(make_pair(a,-1*dis));
    }
    p=u=1;
    c[1]=x;
    v[x]=1;
    d[x]=0;
    while(p<=u)
    {
        int nod=c[p];
        for(i=0;i<L[nod].size();i++)
        {
            int vecin=L[nod][i].first, dist=L[nod][i].second;
            if(v[vecin]==0)
            {
                u++;
                c[u]=vecin;
                v[vecin]=1;
                d[vecin]=d[nod]+dist;
                if(vecin==y)
                {
                    fout<<d[vecin];
                    return 0;
                }
            }
        }
        p++;
    }
    return 0;
}