#include #include #include #include #include using namespace std;using i128=__int128_t; int main(){ios::sync_with_stdio(false);cin.tie(nullptr);int n;cin>>n;vectora(n),b(n),c(n);for(int i=0;i>a[i]>>b[i]>>c[i];vector>children(n);vectorparent(n,-1);for(int i=1,u,v;i>u>>v;--u;--v;children[u].push_back(v);children[v].push_back(u);}vectororder{0};for(size_t i=0;ii128{if(start>finish)return 0;i128 count=finish-start+1;if(c[i]>=0)return count*b[i]+(i128)c[i]*(start+finish)*count/2;long long z=(b[i]-1)/(-c[i]);long long high=min(finish,z);i128 sum=0;if(high>=start){i128 cnt=high-start+1;sum=cnt*b[i]+(i128)c[i]*(start+high)*cnt/2;}long long ones=finish-max(high,start-1);return sum+ones;}; auto feasible=[&](long long days){if(daysdeadline(n);for(int i=0;i=a[i])lo=mid;else hi=mid-1;}deadline[i]=lo;}vectorremaining(n);priority_queue>heap;for(int u=0;u=1;--time){if(heap.empty())return false;auto[ddl,u]=heap.top();heap.pop();if(ddl=0&&--remaining[p]==0)heap.push({deadline[p],p});}return true;};long long lo=n,hi=1000000000LL;while(lo