結果
問題 |
No.10 +か×か
|
ユーザー |
![]() |
提出日時 | 2025-09-05 10:27:22 |
言語 | Crystal (1.14.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 567 bytes |
コンパイル時間 | 14,114 ms |
コンパイル使用メモリ | 311,716 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-09-05 10:27:37 |
合計ジャッジ時間 | 14,571 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | RE * 12 |
ソースコード
n = gets.not_nil!.to_i num = gets.not_nil!.to_i64 a = Array(Int32).new(n) { gets.not_nil!.to_i } dp = Array(Set(Int64)).new(n + 1) { Set(Int64).new } dp[n] = Set{num} n.downto(1) do |i| x = a[i - 1].to_i64 dp[i].each do |y| dp[i - 1] << (y - x) if y - x >= 0 dp[i - 1] << (y // x) if y % x == 0 end end raise "Assertion failed: dp[0] should contain 0" unless dp[0].includes?(0) ans = "" x = 0_i64 (1..n).each do |i| y = a[i - 1].to_i64 if dp[i].includes?(x + y) x += y ans += '+' else x *= y ans += '*' end end puts ans[1..]