結果

問題 No.634 硬貨の枚数1
ユーザー d2verbd2verb
提出日時 2018-01-21 00:29:32
言語 Crystal
(1.11.2)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 332 bytes
コンパイル時間 2,409 ms
コンパイル使用メモリ 216,444 KB
最終ジャッジ日時 2024-11-14 20:19:19
合計ジャッジ時間 2,739 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、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