Dはmapでキーに重さ値に価値でDP(?)的に求めながら最大の価値を抜き出せばいいのかな?