#include <bits/stdc++.h>
using namespace std;
using ll=long long;
#define F first
#define S second
#define sz(x) int(x.size())
const int MAX=1e5+5;
vector<pair<int, pair<int, int>>> gr[MAX];
int n, m, out[MAX];
set<pair<int, int>> a[MAX];
void dfs(int v, int p) {
for(auto &u : gr[v]) {
if(u.F!=p) {
a[u.F]=a[v];
a[u.F].insert(u.S);
int mx=0;
for(auto &i : a[u.F]) {
if(mx<i.F) {
out[u.F]+=i.S-i.F+1;
}
else if(mx<i.S) {
out[u.F]+=i.S-mx;
}
mx=max(mx, i.S);
}
dfs(u.F, v);
}
}
}
signed main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> m;
for(int i=0; i<n-1; i++) {
int x, y, l, r;
cin >> x >> y >> l >> r;
gr[x].push_back(make_pair(y, make_pair(l, r)));
gr[y].push_back(make_pair(x, make_pair(l, r)));
}
dfs(1, 1);
for(int i=2; i<=n; i++) {
cout << out[i] << '\n';
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |