結果
| 問題 |
No.672 最長AB列
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-04-15 21:25:13 |
| 言語 | Scala(Beta) (3.6.2) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 784 bytes |
| コンパイル時間 | 7,723 ms |
| コンパイル使用メモリ | 274,812 KB |
| 実行使用メモリ | 65,180 KB |
| 最終ジャッジ日時 | 2024-06-30 06:01:32 |
| 合計ジャッジ時間 | 26,081 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 7 WA * 9 |
ソースコード
import java.util.Scanner
object Main {
def max(a: Int, b: Int): Int = {
if (a < b) b else a
}
def min(a: Int, b: Int): Int = {
if (a < b) a else b
}
def solve(sc: => Scanner): Unit = {
val s = sc.next
val (_, _, maxcnt, _) = (s + ' ').foldLeft((0, 0, 0, ' '))((acc, c) =>
(acc, c) match {
case ((acnt, bcnt, maxcnt, prev), c) if prev != c =>
(if (c == 'A') 1 else acnt, if (c == 'B') 1 else bcnt, max(maxcnt, min(acnt, bcnt)), c)
case ((acnt, bcnt, maxcnt, prev), 'A') => (acnt + 1, bcnt, maxcnt, 'A')
case ((acnt, bcnt, maxcnt, prev), 'B') => (acnt, bcnt + 1, maxcnt, 'B')
})
println(maxcnt*2)
}
def main(args: Array[String]): Unit = {
val sc: Scanner = new Scanner(System.in)
solve(sc)
}
}