WA on #15,不知道为啥啊
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,a[100010],b[100010],c[100010],u[100010],v[100010],fa[100010];
vector<int> G[100010];
int nd[100010],vis[100010];
void C_close(){
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
}
void dfs(int u,int p){
fa[u]=p;
for(int v:G[u]) if(v!=p) dfs(v,u);
}
bool ck(int st,int ed,int i){
if(c[i]==0) return ((__int128)(ed-st+1)*max(b[i],1ll))>=a[i];
if(c[i]>0){
if(b[i]+(__int128)st*c[i]>=1) return (__int128)((ed-st+1)*b[i]+(__int128)(ed-st+1)*(__int128)(st+ed)/2*c[i])>=a[i];
if(b[i]+(__int128)ed*c[i]<=1) return (__int128)(ed-st+1)>=a[i];
int nw=(__int128)(1-b[i])/c[i]-1;
while(b[i]+(__int128)nw*c[i]<1) nw++;
return (__int128)((nw-st)+(__int128)(ed-nw+1)*b[i]+(__int128)(ed-nw+1)*(__int128)(nw+ed)/2*c[i])>=a[i];
}else{
if(b[i]+(__int128)ed*c[i]>=1) return (__int128)((ed-st+1)*b[i]+(__int128)(ed-st+1)*(__int128)(st+ed)/2*c[i])>=a[i];
if(b[i]+(__int128)st*c[i]<=1) return (__int128)(ed-st+1)>=a[i];
int nw=(__int128)(1-b[i])/c[i]+1;
while(b[i]+(__int128)nw*c[i]<1) nw--;
return (__int128)((ed-nw)+(__int128)(nw-st+1)*b[i]+(__int128)(nw-st+1)*(__int128)(nw+st)/2*c[i])>=a[i];
}
}
int calc(int i,int ed){
int l=1,r=ed,ans=0;
while(l<=r){
int mid=(l+r)>>1;
if(ck(mid,ed,i)) l=mid+1,ans=mid;
else r=mid-1;
}
return ans;
}
void DFS(int u,int p){
int Min=0x3f3f3f3f3f3f3f3f;
for(int v:G[u]){
if(v==p) continue;
DFS(v,u);
Min=min(Min,nd[v]);
}
int cnt=0;
for(int v:G[u]) if(nd[v]==Min&&v!=p) cnt++;
nd[u]=min(nd[u],Min-cnt);
}
bool check(int x){
for(int i=1;i<=n;i++){
nd[i]=calc(i,x);
if(nd[i]<1) return 0;
}
DFS(1,0);
for(int i=1;i<=n;i++) if(nd[i]<1) return 0;
return 1;
}
signed main(){
C_close();
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i];
for(int i=1;i<=n-1;i++){
cin>>u[i]>>v[i];
G[u[i]].push_back(v[i]);
G[v[i]].push_back(u[i]);
}
dfs(1,0);
int l=1,r=1e9,ans=1;
while(l<=r){
int mid=(l+r)>>1;
if(check(mid)) r=mid-1,ans=mid;
else l=mid+1;
}
cout<<ans<<endl;
return 0;
}
/*
20
8711196809241382 866431622 -26
12338190 56486490 -751942578
1592174753724827 319217044 -32
4992314209553308 484821039 -13
10779700847116122 404833961 76
2403722922189903 293525604 -16
873521103768048 347197602 -69
10178465446375981 769434836 9
2900422388953204 637228359 -70
53813051603 668492735 -3406898
6584127210092267 422594092 18
416482361699033290 76338741 734917963
157991653963 142394644 -63517
12338184 880023927 -818649801
686538639348 7947607 -46
176353160 892215477 -364100257
12338185 3978020 -287788818
6279818338239579 70967629 71
7585540542175642 688830826 -12
455266095398331618 290359314 633276435
1 2
12 3
15 4
15 5
17 6
1 7
14 8
19 9
2 10
4 11
13 12
15 13
5 14
1 15
1 16
5 17
16 18
15 19
15 20
*/