#include<bits/stdc++.h>
using namespace std;
#define X first
#define Y second
#define pb emplace_back
#define int long long
const int M=2e5+5;
int n,m,cnt,ans[M],L[M],R[M],pos[M];
vector<pair<int,int>>g[M];
struct Tree{
struct node{
int l,r,sm,tag;
}t[M<<2];
#define ls p<<1
#define rs p<<1|1
#define mid (t[p].l+t[p].r>>1)
inline void pushup(int p){
if(t[p].tag)t[p].sm=pos[t[p].r+1]-pos[t[p].l];
else if(t[p].l!=t[p].r)t[p].sm=t[ls].sm+t[rs].sm;
else t[p].sm=0;
}
inline void build(int l,int r,int p){
t[p].l=l,t[p].r=r;
if(l==r)return;
build(l,mid,ls),build(mid+1,r,rs);
}
inline void update(int l,int r,int k,int p){
if(l<=t[p].l&&t[p].r<=r){
t[p].tag+=k,pushup(p);
return;
}
if(l<=mid)update(l,r,k,ls);
if(r>mid) update(l,r,k,rs);
pushup(p);
}
}T;
inline void dfs(int x,int fa){
ans[x]=T.t[1].sm;
for(auto [y,id]:g[x]){
if(y==fa)continue;
T.update(L[id],R[id],1,1),dfs(y,x),
T.update(L[id],R[id],-1,1);
} return;
}
signed main(){
scanf("%lld%lld",&n,&m);
for(int i=1,u,v;i<n;++i)
scanf("%lld%lld%lld%lld",&u,&v,L+i,R+i),
g[u].pb(v,i),g[v].pb(u,i),
pos[++cnt]=L[i],pos[++cnt]=R[i]+1;
sort(pos+1,pos+1+cnt);
cnt=unique(pos+1,pos+1+cnt)-pos-1;
for(int i=1;i<n;++i)
L[i]=lower_bound(pos+1,pos+1+cnt,L[i])-pos,
R[i]=upper_bound(pos+1,pos+1+cnt,R[i])-pos-1;
T.build(1,cnt,1),dfs(1,0);
for(int i=2;i<=n;++i)
printf("%lld\n",ans[i]);
return 0;
}
Compilation message (stderr)
Main.cpp: In function 'int main()':
Main.cpp:47:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
47 | scanf("%lld%lld",&n,&m);
| ~~~~~^~~~~~~~~~~~~~~~~~
Main.cpp:49:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
49 | scanf("%lld%lld%lld%lld",&u,&v,L+i,R+i),
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| # | 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... |