Cod sursa(job #1438913)

Utilizator sanzianaioneteIonete Sanziana sanzianaionete Data 21 mai 2015 03:51:05
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream f("sate.in");
ofstream g("sate.out");
struct drum
{
    int sat,lg;
};
int n,m,x,y,d[30004];
vector<drum>a[30004];
void parcurgere(int nod)
{
    queue<int> c;
    c.push(nod);
    while(!c.empty())
    {
        int l=a[c.front()].size();
        for(int i=0;i<l;i++)
        {
            if(!d[a[c.front()][i].sat])
            {
                d[a[c.front()][i].sat]=d[c.front()]+a[c.front()][i].lg;
                c.push(a[c.front()][i].sat);
                if(a[c.front()][i].sat==y)
                    return;
            }
        }
        c.pop();
    }
}
int main()
{
    f>>n>>m>>x>>y;
    for(int i=0;i<m;i++)
    {
        int s1,s2,c;
        drum k;
        f>>s1>>s2>>c;
        k.sat=s2;k.lg=c;
        a[s1].push_back(k);
        k.sat=s1;k.lg=(-1)*c;
        a[s2].push_back(k);
    }
    parcurgere(x);
    g<<d[y];
    f.close();g.close();
    return 0;
}