結果
問題 |
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) } }