Cod sursa(job #1736507)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 1 august 2016 21:04:56
Problema Sate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<cstdio>
#include<vector>
#include<queue>
#define MAXN 30010
using namespace std;
vector<pair<int,int> > g[MAXN];
queue<int> Queue;
int answer[MAXN],seen[MAXN];
int main(){
    freopen("sate.in","r",stdin);
    freopen("sate.out","w",stdout);
    int n,m,x,y,i,a,b,c,node;
    scanf("%d%d%d%d",&n,&m,&x,&y);
    for(i=1;i<=m;i++){
        scanf("%d%d%d",&a,&b,&c);
        g[a].push_back(make_pair(b,c));
        g[b].push_back(make_pair(a,c));
    }
    Queue.push(x);
    seen[x]=1;
    while(!Queue.empty()){
        node=Queue.front();
        Queue.pop();
        for(i=0;i<g[node].size();i++)
            if(seen[g[node][i].first]==0){
                seen[g[node][i].first]=1;
                if(g[node][i].first>node)
                    answer[g[node][i].first]=answer[node]+g[node][i].second;
                else
                    answer[g[node][i].first]=answer[node]-g[node][i].second;
                Queue.push(g[node][i].first);
            }
    }
    printf("%d",answer[y]);
    return 0;
}