ll@n,@W,@(v,w)[n],o=0; if(W>1d6){ ll a=argmax[i,0,n](1d6*v[i]/w[i]); ll b=(W-1d6)/w[a]; o+=v[a]*b; W-=w[a]*b; } ll d[W+1]{}; rep(i,n){ rep(j,w[i],W+1){ d[j]>?=d[j-w[i]]+v[i]; } } wt(o+d[W]);