Cod sursa(job #1508518)

Utilizator elevenstrArina Raileanu elevenstr Data 22 octombrie 2015 17:55:11
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <bitset>
#include <queue>
using namespace std;
#define MAX1 30005
ifstream in("sate.in");
ofstream out("sate.out");
#define f(a) for(int i=1;i<=a;i++)
int n,y,sol;
bitset <MAX1> viz;
vector <pair< int, int> > v[MAX1];
long long int d[MAX1];
inline void dfs(int x,int d)
{
    if(x==y)
    {
        sol=d;
        return;
    }
    viz[x]=1;
    for(vector<pair<int, int > > ::iterator it=v[x].begin(); it!=v[x].end(); it++)
        if(viz[it->first]==0)dfs(it->first,d+it->second);
    return;
}
int main()
{
    int m,x,a,b,dis;
    in>>n>>m>>x>>y;
    f(m)
    {
        in>>a>>b>>dis;
        v[a].push_back({b,dis});
        v[b].push_back({a,-dis});
    }
    dfs(x,0);
    out<<sol;
    return 0;
}