Cod sursa(job #996722)

Utilizator mitrutstrutMitrea Andrei Ionut mitrutstrut Data 12 septembrie 2013 15:54:37
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<cstdio>
#include<vector>
using namespace std;
int i,x1,y1,c1,n,m,ap[2013],s[2013];
vector < pair < int , int > > v[2013];
void bf(int nod)
{
    vector < pair < int , int > > :: iterator it;
    ap[nod]=1;
    for(it=v[nod].begin();it!=v[nod].end();it++)
        if(ap[it->first]==0)
        {
            s[it->first]=s[nod]+it->second;
            bf(it->first);
        }
}
int main()
{
freopen("reconst.in","r",stdin);
freopen("reconst.out","w",stdout);
scanf("%d",&n);
scanf("%d",&m);
for(i=1;i<=m;i++)
{
    scanf("%d",&x1);
    scanf("%d",&y1);
    scanf("%d",&c1);
    v[y1].push_back(make_pair(x1-1,-c1));
    v[x1-1].push_back(make_pair(y1,c1));
}
bf(0);
for(i=1;i<=n;i++)
    if(ap[i]==0) bf(i);
for(i=1;i<=n;i++)
    printf("%d ",s[i]-s[i-1]);
return 0;
}