#include <bits/stdc++.h>
#define ll long long
#define sti string
#define bit(n,i) ((n>>i)&1)
#define itachi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define maxn 200005
#define fi first
#define se second
#define int long long
using namespace std;
int sz[maxn],A,B,n;
int resall=0;
vector<pair<int,int>> vecall,vecin;
struct adja{
int v,w,c;
};
vector<adja> adj[maxn];
bool banned[maxn];
struct Fenwick{
int n;
vector<int> st;
Fenwick(int _n=0){
n=_n;
st.assign(n+5,0);
}
void update(int pos,int val){
for(;pos<=n;pos+=pos&-pos) st[pos]+=val;
}
int get(int pos){
int res=0;
for(;pos>0;pos-=pos&-pos) res+=st[pos];
return res;
}
void reset(int _n=0){
n=_n;
fill(st.begin(),st.begin()+n+5,0);
}
};
Fenwick tree(200005);
void countChild(int u,int p){
sz[u]=1;
for(auto [v,w,c]:adj[u]){
if(v!=p&&!banned[v]){
countChild(v,u);
sz[u]+=sz[v];
}
}
}
int find_centroid(int u,int p,int S){
for(auto [v,w,c]:adj[u]){
if(v!=p&&!banned[v]&&sz[v]>S/2){
return find_centroid(v,u,S);
}
}
return u;
}
void dfs(int u,int p,int L,int T){
vecin.push_back({L,T});
for(auto [v,w,c]:adj[u]){
if(v!=p&&!banned[v]) dfs(v,u,L+w,T+c);
}
}
int calc(vector<pair<int,int>>&vec,int limitL,int limitT){
if(vec.size()<2) return 0;
vector<int> comp;
for(auto [L,W]:vec) comp.push_back(W);
sort(comp.begin(),comp.end());
comp.erase(unique(comp.begin(),comp.end()),comp.end());
sort(vec.begin(),vec.end());
tree.reset(comp.size());
int res=0,ptr=0,self=0,m=vec.size();
for(int i=m-1;i>=0;i--){
while(ptr<m&&vec[i].fi+vec[ptr].fi<=limitL){
int pos=lower_bound(comp.begin(),comp.end(),vec[ptr].se)-comp.begin()+1;
tree.update(pos,1);
ptr++;
}
int pos=upper_bound(comp.begin(),comp.end(),limitT-vec[i].se)-comp.begin();
res+=tree.get(pos);
if(2*vec[i].fi<=limitL&&2*vec[i].se<=limitT) self++;
}
return (res-self)/2;
}
void solve(int u){
countChild(u,0);
u=find_centroid(u,0,sz[u]);
vecall.clear();
vecall.push_back({0,0});
for(auto [v,w,c]:adj[u]){
if(banned[v]) continue;
vecin.clear();
dfs(v,u,w,c);
for(auto p:vecin) vecall.push_back(p);
resall-=calc(vecin,A,B);
}
resall+=calc(vecall,A,B);
banned[u]=1;
for(auto [v,w,c]:adj[u]){
if(!banned[v]) solve(v);
}
}
signed main(){
itachi
freopen("BRT.inp","r",stdin);
freopen("BRT.out","w",stdout);
cin>>n>>A>>B;
for(int i=1;i<n;i++){
int u,v,w,c;
cin>>u>>v>>w>>c;
adj[u].push_back({v,w,c});
adj[v].push_back({u,w,c});
}
solve(1);
cout<<resall;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgc3RpIHN0cmluZwojZGVmaW5lIGJpdChuLGkpICgobj4+aSkmMSkKI2RlZmluZSBpdGFjaGkgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwojZGVmaW5lIG1heG4gMjAwMDA1CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBpbnQgbG9uZyBsb25nCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IHN6W21heG5dLEEsQixuOwppbnQgcmVzYWxsPTA7CnZlY3RvcjxwYWlyPGludCxpbnQ+PiB2ZWNhbGwsdmVjaW47CnN0cnVjdCBhZGphewogICAgaW50IHYsdyxjOwp9Owp2ZWN0b3I8YWRqYT4gYWRqW21heG5dOwpib29sIGJhbm5lZFttYXhuXTsKCnN0cnVjdCBGZW53aWNrewogICAgaW50IG47CiAgICB2ZWN0b3I8aW50PiBzdDsKICAgIEZlbndpY2soaW50IF9uPTApewogICAgICAgIG49X247CiAgICAgICAgc3QuYXNzaWduKG4rNSwwKTsKICAgIH0KICAgIHZvaWQgdXBkYXRlKGludCBwb3MsaW50IHZhbCl7CiAgICAgICAgZm9yKDtwb3M8PW47cG9zKz1wb3MmLXBvcykgc3RbcG9zXSs9dmFsOwogICAgfQogICAgaW50IGdldChpbnQgcG9zKXsKICAgICAgICBpbnQgcmVzPTA7CiAgICAgICAgZm9yKDtwb3M+MDtwb3MtPXBvcyYtcG9zKSByZXMrPXN0W3Bvc107CiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KICAgIHZvaWQgcmVzZXQoaW50IF9uPTApewogICAgICAgIG49X247CiAgICAgICAgZmlsbChzdC5iZWdpbigpLHN0LmJlZ2luKCkrbis1LDApOwogICAgfQp9OwoKRmVud2ljayB0cmVlKDIwMDAwNSk7Cgp2b2lkIGNvdW50Q2hpbGQoaW50IHUsaW50IHApewogICAgc3pbdV09MTsKICAgIGZvcihhdXRvIFt2LHcsY106YWRqW3VdKXsKICAgICAgICBpZih2IT1wJiYhYmFubmVkW3ZdKXsKICAgICAgICAgICAgY291bnRDaGlsZCh2LHUpOwogICAgICAgICAgICBzelt1XSs9c3pbdl07CiAgICAgICAgfQogICAgfQp9CgppbnQgZmluZF9jZW50cm9pZChpbnQgdSxpbnQgcCxpbnQgUyl7CiAgICBmb3IoYXV0byBbdix3LGNdOmFkalt1XSl7CiAgICAgICAgaWYodiE9cCYmIWJhbm5lZFt2XSYmc3pbdl0+Uy8yKXsKICAgICAgICAgICAgcmV0dXJuIGZpbmRfY2VudHJvaWQodix1LFMpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB1Owp9Cgp2b2lkIGRmcyhpbnQgdSxpbnQgcCxpbnQgTCxpbnQgVCl7CiAgICB2ZWNpbi5wdXNoX2JhY2soe0wsVH0pOwogICAgZm9yKGF1dG8gW3YsdyxjXTphZGpbdV0pewogICAgICAgIGlmKHYhPXAmJiFiYW5uZWRbdl0pIGRmcyh2LHUsTCt3LFQrYyk7CiAgICB9Cn0KCmludCBjYWxjKHZlY3RvcjxwYWlyPGludCxpbnQ+PiZ2ZWMsaW50IGxpbWl0TCxpbnQgbGltaXRUKXsKICAgIGlmKHZlYy5zaXplKCk8MikgcmV0dXJuIDA7CiAgICB2ZWN0b3I8aW50PiBjb21wOwogICAgZm9yKGF1dG8gW0wsV106dmVjKSBjb21wLnB1c2hfYmFjayhXKTsKICAgIHNvcnQoY29tcC5iZWdpbigpLGNvbXAuZW5kKCkpOwogICAgY29tcC5lcmFzZSh1bmlxdWUoY29tcC5iZWdpbigpLGNvbXAuZW5kKCkpLGNvbXAuZW5kKCkpOwogICAgc29ydCh2ZWMuYmVnaW4oKSx2ZWMuZW5kKCkpOwogICAgdHJlZS5yZXNldChjb21wLnNpemUoKSk7CiAgICBpbnQgcmVzPTAscHRyPTAsc2VsZj0wLG09dmVjLnNpemUoKTsKICAgIGZvcihpbnQgaT1tLTE7aT49MDtpLS0pewogICAgICAgIHdoaWxlKHB0cjxtJiZ2ZWNbaV0uZmkrdmVjW3B0cl0uZmk8PWxpbWl0TCl7CiAgICAgICAgICAgIGludCBwb3M9bG93ZXJfYm91bmQoY29tcC5iZWdpbigpLGNvbXAuZW5kKCksdmVjW3B0cl0uc2UpLWNvbXAuYmVnaW4oKSsxOwogICAgICAgICAgICB0cmVlLnVwZGF0ZShwb3MsMSk7CiAgICAgICAgICAgIHB0cisrOwogICAgICAgIH0KICAgICAgICBpbnQgcG9zPXVwcGVyX2JvdW5kKGNvbXAuYmVnaW4oKSxjb21wLmVuZCgpLGxpbWl0VC12ZWNbaV0uc2UpLWNvbXAuYmVnaW4oKTsKICAgICAgICByZXMrPXRyZWUuZ2V0KHBvcyk7CiAgICAgICAgaWYoMip2ZWNbaV0uZmk8PWxpbWl0TCYmMip2ZWNbaV0uc2U8PWxpbWl0VCkgc2VsZisrOwogICAgfQogICAgcmV0dXJuIChyZXMtc2VsZikvMjsKfQoKdm9pZCBzb2x2ZShpbnQgdSl7CiAgICBjb3VudENoaWxkKHUsMCk7CiAgICB1PWZpbmRfY2VudHJvaWQodSwwLHN6W3VdKTsKICAgIHZlY2FsbC5jbGVhcigpOwogICAgdmVjYWxsLnB1c2hfYmFjayh7MCwwfSk7CiAgICBmb3IoYXV0byBbdix3LGNdOmFkalt1XSl7CiAgICAgICAgaWYoYmFubmVkW3ZdKSBjb250aW51ZTsKICAgICAgICB2ZWNpbi5jbGVhcigpOwogICAgICAgIGRmcyh2LHUsdyxjKTsKICAgICAgICBmb3IoYXV0byBwOnZlY2luKSB2ZWNhbGwucHVzaF9iYWNrKHApOwogICAgICAgIHJlc2FsbC09Y2FsYyh2ZWNpbixBLEIpOwogICAgfQogICAgcmVzYWxsKz1jYWxjKHZlY2FsbCxBLEIpOwogICAgYmFubmVkW3VdPTE7CiAgICBmb3IoYXV0byBbdix3LGNdOmFkalt1XSl7CiAgICAgICAgaWYoIWJhbm5lZFt2XSkgc29sdmUodik7CiAgICB9Cn0KCnNpZ25lZCBtYWluKCl7CiAgICBpdGFjaGkKICAgIGZyZW9wZW4oIkJSVC5pbnAiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJCUlQub3V0IiwidyIsc3Rkb3V0KTsKICAgIGNpbj4+bj4+QT4+QjsKICAgIGZvcihpbnQgaT0xO2k8bjtpKyspewogICAgICAgIGludCB1LHYsdyxjOwogICAgICAgIGNpbj4+dT4+dj4+dz4+YzsKICAgICAgICBhZGpbdV0ucHVzaF9iYWNrKHt2LHcsY30pOwogICAgICAgIGFkalt2XS5wdXNoX2JhY2soe3UsdyxjfSk7CiAgICB9CiAgICBzb2x2ZSgxKTsKICAgIGNvdXQ8PHJlc2FsbDsKICAgIHJldHVybiAwOwp9Cg==