結果

問題 No.634 硬貨の枚数1
ユーザー むらため
提出日時 2019-01-24 05:26:11
言語 Nim
(2.2.0)
結果
WA  
(最新)
AC  
(最初)
実行時間 -
コード長 620 bytes
コンパイル時間 2,496 ms
コンパイル使用メモリ 61,400 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-07-01 10:41:05
合計ジャッジ時間 4,346 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1 WA * 2
other AC * 59 WA * 16
権限があれば一括ダウンロードができます
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 8) Warning: imported and not used: 'sequtils' [UnusedImport]

ソースコード

diff #

import sequtils,math
proc getchar_unlocked():char {. importc:"getchar_unlocked",header: "<stdio.h>" .}
proc scan(): int =
  while true:
    let k = getchar_unlocked()
    if k < '0': break
    result = 10 * result + k.ord - '0'.ord

const INF = 1000_0010
const C = (proc():seq[int] =
  result = @[]
  for i in 1..INF:
    let c = i * (i + 1) div 2
    if c > INF : break
    result &= c
)()
proc isTriangleNum(n:int) : bool =
  let nsq = (n*2).float.sqrt.int
  return nsq * (nsq + 1) div 2 == n

let n = scan()
if n.isTriangleNum() : quit "1",0
for c in C:
  if c > n: break
  if (n-c).isTriangleNum(): quit "2",0
echo 3
0