Cod sursa(job #1549025)

Utilizator SilviuIIon Silviu SilviuI Data 11 decembrie 2015 20:26:19
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#include <vector>
#include <utility>
#define nmax 2010
using namespace std;
int x,y,z,fr[nmax],i,m,n,sol[nmax];
vector < pair<int,int> > g[nmax];
void dfs(int x)
{
    fr[x]=1;
    for (int i=0;i<g[x].size();i++)
        if (fr[g[x][i].first]==0) {
            sol[g[x][i].first]=sol[x]+g[x][i].second;
            dfs(g[x][i].first);
    }
}
int main() {
freopen("reconst.in","r",stdin);
freopen("reconst.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=1;i<=m;i++) {
    scanf("%d %d %d",&x,&y,&z);
    g[x-1].push_back(make_pair(y,z));
    g[y].push_back(make_pair(x-1,-z));
}
dfs(0);
for (i=1;i<=n;i++)
    if (fr[i]==0) dfs(i);
for (i=1;i<=n;i++) printf("%d ",sol[i]-sol[i-1]);
return 0;
}