Cod sursa(job #1058513)

Utilizator jul123Iulia Duta jul123 Data 15 decembrie 2013 17:06:13
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<iostream>
#include<fstream>
#include<vector>

using namespace std;

int viz[30001], d[30001], y;
vector<pair<int, int> >g[30001];
void DF(int nod)
{
    int i;
    for(i=0; i<g[nod].size(); i++)
    {
        if(viz[g[nod][i].first]==0)
        {
            viz[g[nod][i].first]=1;
            if(g[nod][i].first<nod)
                d[g[nod][i].first]=d[nod]-g[nod][i].second;
            if(g[nod][i].first>nod)
                d[g[nod][i].first]=d[nod]+g[nod][i].second;
            if(g[nod][i].first!=y)
                DF(g[nod][i].first);
        }

    }

}
int main()
{
    ifstream f("sate.in");
    ofstream h("sate.out");

    int n, m, x, i, a, b, c;
    f>>n>>m>>x>>y;
    for(i=0; i<m; i++)
    {
        f>>a>>b>>c;
        g[a].push_back(make_pair(b, c));
        g[b].push_back(make_pair(a, c));
    }
    d[x]=0;
    viz[x]=1;
    DF(x);
    h<<d[y];
}