Cod sursa(job #1619067)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 28 februarie 2016 12:05:29
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>
#include <vector>
#define inf (1LL<<62)

using namespace std;

int m,n,i,A,B,S,nod;long long a[2002];
bool used[2002];
vector< pair<int,int> > v[2002];

void dfs(int x)
{
    int i;used[x]=1;
    for(i=0;i<v[x].size();++i)
    if(!used[v[x][i].first])
    {
        a[v[x][i].first]=a[x]+v[x][i].second;
        dfs(v[x][i].first);
    }
}
int main()
{
    freopen("reconst.in","r",stdin);
    freopen("reconst.out","w",stdout);

    scanf("%d%d",&n,&m);
    while(m--)
    {
        scanf("%d%d%d",&A,&B,&S);
        v[A-1].push_back(make_pair(B,S));
        v[B].push_back(make_pair(A-1,-S));
        nod=B;
    }

    for(i=1;i<=n;++i)
    if(!used[i]) dfs(i);

    for(i=1;i<=n;++i) printf("%lld ",a[i]-a[i-1]);

    return 0;
}