結果

問題 No.634 硬貨の枚数1
ユーザー d2verbd2verb
提出日時 2018-01-21 00:29:32
言語 Crystal
(1.11.2)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 332 bytes
コンパイル時間 1,703 ms
コンパイル使用メモリ 217,568 KB
最終ジャッジ日時 2024-04-27 02:31:06
合計ジャッジ時間 2,057 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
Showing last frame. Use --error-trace for full trace.

In Main.cr:8:11

 8 | tris << tri
             ^--
Error: expected argument #1 to 'Array(Int32)#<<' to be Int32, not Float64

Overloads are:
 - Array(T)#<<(value : T)

ソースコード

diff #

n = gets.not_nil!.to_i
k = ((Math.sqrt(1 + 8 * n) - 1) / 2).to_i
tris = [] of Int32
istri = {0 => false}

1.upto(k) do |i|
  tri = i * (i + 1) / 2
  tris << tri
  istri[tri] = true
end

if tris.includes? n
  p 1
else
  ok = false
  tris.each do |a|
    break if ok
    ok = ok || (istri[n-a]? && istri[a]?)
  end
  p ok ? 2 : 3
end
0