#include using namespace std; typedef long long ll; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b par,size,edge; void init(int n_){ n=n_; par.assign(n,-1); size.assign(n,1); edge.assign(n,0); for(int i=0;i G[MAX]; ll X[MAX],Y[MAX]; void solve(int u){ for(int to:G[u]){ solve(to); X[u]-=(Y[u]-X[u]); } chmin(X[u],Y[u]); } int main(){ std::ifstream in("text.txt"); std::cin.rdbuf(in.rdbuf()); cin.tie(0); ios::sync_with_stdio(false); int N;cin>>N; vector A(N),B(N),C(N); vector deg(N); UF uf;uf.init(N); for(int i=0;i>A[i]; } for(int i=0;i>B[i]; } for(int i=0;i>C[i];C[i]--; deg[C[i]]++; } queue Q; for(int i=0;i1){ ll mid=(left+right)/2; for(int i=0;i=Y[i]); if(ok) left=mid; else right=mid; } cout<