func main() var n: int :: cui@inputInt() var a: int :: cui@inputInt() var b: int :: cui@inputInt() var c: int :: cui@inputInt() ; dp[i] = v ; i: 使用枚数 ; v: 割引額の合計 var dp: []int :: #[n + 1]int for i(0, n - 1) do dp[i] :: -1 end for do dp[0] :: 0 for i(3, n) if(dp[i - 3] <> -1) do dp[i] :: lib@max(dp[i], dp[i - 3] + a) end if end for for i(5, n) if(dp[i - 5] <> -1) do dp[i] :: lib@max(dp[i], dp[i - 5] + b) end if end for for i(10, n) if(dp[i - 10] <> -1) do dp[i] :: lib@max(dp[i], dp[i - 10] + c) end if end for var ans: int :: dp.max() do cui@print("\{ans}\n") end func