結果
問題 | No.1747 Many Formulae 2 |
ユーザー | yudedako |
提出日時 | 2022-01-25 00:28:02 |
言語 | Scala(Beta) (3.4.0) |
結果 |
AC
|
実行時間 | 838 ms / 2,000 ms |
コード長 | 837 bytes |
コンパイル時間 | 13,657 ms |
コンパイル使用メモリ | 257,780 KB |
実行使用メモリ | 63,112 KB |
最終ジャッジ日時 | 2024-05-08 21:20:23 |
合計ジャッジ時間 | 28,969 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 829 ms
62,952 KB |
testcase_01 | AC | 827 ms
62,992 KB |
testcase_02 | AC | 838 ms
62,820 KB |
testcase_03 | AC | 819 ms
63,012 KB |
testcase_04 | AC | 827 ms
62,828 KB |
testcase_05 | AC | 838 ms
63,112 KB |
testcase_06 | AC | 825 ms
62,884 KB |
testcase_07 | AC | 828 ms
63,024 KB |
testcase_08 | AC | 825 ms
62,908 KB |
testcase_09 | AC | 803 ms
63,092 KB |
testcase_10 | AC | 814 ms
62,928 KB |
testcase_11 | AC | 816 ms
62,992 KB |
testcase_12 | AC | 813 ms
62,968 KB |
testcase_13 | AC | 809 ms
62,976 KB |
testcase_14 | AC | 817 ms
62,896 KB |
testcase_15 | AC | 831 ms
62,920 KB |
testcase_16 | AC | 814 ms
63,040 KB |
testcase_17 | AC | 807 ms
63,008 KB |
testcase_18 | AC | 808 ms
62,792 KB |
ソースコード
import scala.annotation.tailrec import scala.io.StdIn.* def isPrime(value: Long): Boolean = @tailrec def isPrimeInner(p: Long): Boolean = if p * p > value then true else value % p != 0 && isPrimeInner(p + 1) if value <= 2 then value == 2 else isPrimeInner(2) def countExpression(digits: List[Int])(predicate: Long => Boolean): Int = def enumerate(rest: List[Int], confirmed: Long = 0, last: Long = 0): Int = rest match case Nil => if predicate(confirmed + last) then 1 else 0 case h::Nil => enumerate(Nil, confirmed, last * 10 + h) case h::t => enumerate(t, confirmed, last * 10 + h) + enumerate(t, confirmed + last * 10 + h, 0) enumerate(digits) @main def main = val expr = readLine().map(_.asDigit).toList val result = countExpression(expr){isPrime} println(result)