#include #define int ll using namespace std; #define rep(i,n) for(int i=0;i=0;i--) #define rng(i,c,n) for(int i=c;i #define _4ab8goq ios::sync_with_stdio(0),cin.tie(0); typedef long long ll; typedef vector vi; typedef pair pii; void print(){cout<<'\n';} template void print(const h&v,const t&...u){cout<>n>>h; vi a(n); rep(i,n){ cin>>a[i]; } vi b(n); rep(i,n){ cin>>b[i]; } vi ps_a; rep(i,n){ ps_a.pb((sz(ps_a)?ps_a.back():0)+a[i]); } vi ps_bc; rep(i,n){ ps_bc.pb((sz(ps_bc)?ps_bc.back():0)+i*b[i]); } vi ps_b; rep(i,n){ ps_b.pb((sz(ps_b)?ps_b.back():0)+b[i]); } auto range_sum=[&](vi&ps,int l,int r)->int{ return ps[r]-(!l?0:ps[l-1]); }; int ans=0; rep(i,n){ int l=0,r=i; int opt=-1; while(l<=r){ int m=(l+r)/2; int now=range_sum(ps_bc,m,i); now-=(m-1)*range_sum(ps_b,m,i); if(now<=h){ opt=m,r=m-1; }else{ l=m+1; } } if(opt!=-1){ ans=max(ans,range_sum(ps_a,opt,i)); } } cout<