Cod sursa(job #1472768)

Utilizator P_NyagolovPetar Nyagolov P_Nyagolov Data 17 august 2015 18:09:14
Problema Reconst Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <bits/stdc++.h>
#define endl '\n'

using namespace std;

struct edge {
  int to;
  long long w;

  edge(){}
  edge(int a, long long b) {
    to=a;
    w=b;
  }
};

int n,m;
vector <edge> v[2048];
long long partial_sums[2048];
bool used[2048];

void dfs(int node) {
  int i;
  used[node]=true;
  for(i=0;i<v[node].size();i++) if(!used[v[node][i].to]) {
    partial_sums[v[node][i].to]=partial_sums[node]+v[node][i].w;
    dfs(v[node][i].to);
  }
}

int main() {
  //ios_base::sync_with_stdio(false);
  //cin.tie(NULL);
  //freopen("test.txt","r",stdin);
  freopen("reconst.in","r",stdin);
  freopen("reconst.out","w",stdout);
  int i;
  long long a,b,c;
  
  scanf("%d %d", &n, &m);
  for(i=1;i<=n;i++) {
    scanf("%lld %lld %lld", &a, &b, &c);
    v[a-1].push_back(edge(b,c));
    v[b].push_back(edge(a-1,c*(-1)));
  }

  for(i=0;i<=n;i++) if(!used[i]) dfs(i);
  
  for(i=1;i<=n;i++) {
    //if(i>1) printf(" ");
    printf("%lld ", partial_sums[i]-partial_sums[i-1]);
  }
  printf("\n");

  return 0;
}