Cod sursa(job #2021302)

Utilizator ionanghelinaIonut Anghelina ionanghelina Data 13 septembrie 2017 10:12:38
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<bits/stdc++.h>
#define inf INT_MAX
#define maxN 2005
using namespace std;
int n,m,x,y,z,nod,pos,nr,val[maxN];
bool seen[maxN];
deque<int> q;
vector<pair<int,int> > v[maxN];

inline void dfs(int nod)
{
    seen[nod]=1;
    for(vector<pair<int,int> >::iterator it=v[nod].begin();it!=v[nod].end();it++)
    {
        if(seen[it->first]) continue;
        val[it->first]=val[nod]+it->second;
        dfs(it->first);
    }
}
int main()
{
    freopen("reconst.in","r",stdin);
    freopen("reconst.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&x,&y,&z);
        v[x-1].push_back({y,z});
        v[y].push_back({x-1,-z});
    }
    val[0]=0;
    for(int i=0;i<=n;i++)
        if(!seen[i])
    {
        dfs(i);
    }
    for(int i=1;i<=n;i++)
        printf("%d ",val[i]-val[i-1]);
    return 0;
}