結果
| 問題 |
No.5 数字のブロック
|
| ユーザー |
|
| 提出日時 | 2015-09-20 19:43:56 |
| 言語 | Scala(Beta) (3.6.2) |
| 結果 |
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)
}
}