ll@n,@m,@w,@a[n],@b[m],@c[]; rsortA(n,a); rep(i,n-1){ a[i+1]+=a[i]; } ll sb[1<<m],sc[],sn=1; sb[0]=0;sc[0]=0; rep(i,m){ rep(j,sn){ sb[sn+j]=sb[j]+b[i]; sc[sn+j]=sc[j]+c[i]; } sn<<=1; } int z=0; rep(j,sn){ if(sb[j]<=w){ ll d=w-sb[j]; ll y=sc[j]; if(d){ y+=a[min(d-1,n-1)]; } chmax(z,y); } } wt(z);