結果
問題 | No.505 カードの数式2 |
ユーザー |
|
提出日時 | 2019-02-03 23:48:58 |
言語 | Nim (2.2.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 932 bytes |
コンパイル時間 | 2,167 ms |
コンパイル使用メモリ | 61,216 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-01 11:19:02 |
合計ジャッジ時間 | 3,177 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 29 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 8) Warning: imported and not used: 'sequtils' [UnusedImport]
ソースコード
import sequtils template times*(n:int,body) = (for _ in 0..<n: body) proc printf(formatstr: cstring){.header: "<stdio.h>", varargs.} proc getchar_unlocked():char {. importc:"getchar_unlocked",header: "<stdio.h>" .} proc scan(): int = var minus = false block: let k = getchar_unlocked() if k == '-' : minus = true else: result = 10 * result + k.ord - '0'.ord while true: let k = getchar_unlocked() if k < '0' or k > '9': break result = 10 * result + k.ord - '0'.ord if minus: result *= -1 let n = scan() var ansMin = scan() var ansMax = ansMin (n-1).times: let x = scan() var plus = ansMax + x.abs() var minus = ansMin - x.abs() var mult1 = ansMax * x var mult2 = ansMin * x var div1 = if x == 0: mult1 else: ansMax div x var div2 = if x == 0: mult2 else: ansMin div x let nexts = [plus,minus,mult1,mult2,div1,div2] ansMin = min(nexts) ansMax = max(nexts) printf("%ld\n",ansMax)