結果
問題 | No.5 数字のブロック |
ユーザー | くわい |
提出日時 | 2015-09-20 19:43:56 |
言語 | Scala(Beta) (3.4.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,419 bytes |
コンパイル時間 | 6,571 ms |
コンパイル使用メモリ | 243,488 KB |
最終ジャッジ日時 | 2024-11-14 19:14:11 |
合計ジャッジ時間 | 7,000 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
[31m[31m-- [E040] Syntax Error: Main.scala:34:32 ---------------------------------------[0m[0m [31m34 |[0m [33mdef[0m [36mmain[0m([36margs[0m: [35mArray[0m[[35mString[0m]) { [31m[31m |[0m ^[0m [31m |[0m '=' expected, but '{' found 1 error found
ソースコード
import java.io.{BufferedReader, InputStreamReader} object Problem005 { def inputFromStdin(): (Int, Int, Seq[Int]) = { val br = new BufferedReader(new InputStreamReader(System.in)) val width = br.readLine.toInt val blockNum = br.readLine.toInt val widthSeq = (br.readLine.split(" ").map(_.toInt)).toList (width, blockNum, widthSeq) } def proc(width: Int, blockNum: Int, widthSeq: Seq[Int]): Int = { // 一番小さいものから順に入れていけば答えが出る val sortedSeq = widthSeq.sorted def procR(remain: Int, s: Seq[Int]): Int = { s match { case (head :: tail) => { if (head > remain) { widthSeq.length - s.length // これ以上入らない } else { procR(remain - head, s.tail) // まだ入るから次へ } } case Nil => widthSeq.length // 全部入った } } procR(width, sortedSeq) } def main(args: Array[String]) { val (width, blockNum, widthList) = inputFromStdin() val result = proc(width, blockNum, widthList) println(result) // test } def test = { assert(proc(16, 3, Seq(10, 5, 7)) == 2) assert(proc(100, 10, Seq(14, 85, 77, 26, 50, 45, 66, 79, 10, 3)) == 5) assert(proc(10000, 3, Seq(10, 5, 7)) == 3) assert(proc(16, 0, Seq()) == 0) assert(proc(0, 1, Seq(1)) == 0) assert(proc(0, 0, Seq()) == 0) } }