結果

問題 No.265 数学のテスト
ユーザー くわいくわい
提出日時 2015-11-02 17:09:23
言語 Scala(Beta)
(3.4.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,029 bytes
コンパイル時間 5,795 ms
コンパイル使用メモリ 228,436 KB
最終ジャッジ日時 2024-11-14 19:24:09
合計ジャッジ時間 6,531 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
-- [E040] Syntax Error: Main.scala:44:32 ---------------------------------------
44 |  def main(args: Array[String]) {
   |                                ^
   |                                '=' expected, but '{' found
1 error found

ソースコード

diff #

import scala.io.StdIn

object Problem265 {

  def d(freq: Int, di: Int): Int = {
    if (freq < di) return 0
    di match {
      case 0 => 1
      case _ => freq * d(freq - 1, di - 1)
    }
  }

  def proc(N: Int, dmax: Int, S: String): String = {
    val cnt = Array.fill(dmax + 1)(0L)
    var di = 0
    var cof = 0L
    var freq = 0

    def commit: Unit = {
      cnt(freq - di) += d(freq, di) * cof
      clear
    }

    def clear: Unit = {
      cof = 0
      freq = 0
    }

    for (i <- 0 until N) {
      S(i) match {
        case 'd' => di += 1
        case '}' => if (freq - di >= 0) commit else clear; di -= 1
        case '+' => if (freq - di >= 0) commit else clear
        case 'x' => freq += 1; if (cof == 0) cof = 1
        case c if c.isDigit => cof = c - '0'
        case _ =>
      }
    }
    commit

    cnt.mkString(" ")
  }

  def main(args: Array[String]) {
    val N = StdIn.readInt()
    val d = StdIn.readInt()
    val S = StdIn.readLine()

    val result = proc(N, d, S)
    println(result)
  }
}
0