結果
問題 |
No.3143 Colorless Green Parentheses Sleep Furiously
|
ユーザー |
|
提出日時 | 2025-05-17 01:27:29 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,155 bytes |
コンパイル時間 | 12,707 ms |
コンパイル使用メモリ | 380,108 KB |
実行使用メモリ | 6,272 KB |
最終ジャッジ日時 | 2025-05-17 01:27:45 |
合計ジャッジ時間 | 15,249 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 47 WA * 2 |
ソースコード
use proconio::input; fn main() { input! { _n: usize, k: usize, s: String, } let ans = solve(k, s); if let Some(ans) = ans { println!("Yes"); println!("{}", ans); } else { println!("No"); } } fn solve(k: usize, s: String) -> Option<String> { let mut ans = String::new(); let mut eval = 0; let mut i = 0; let mut prev = '$'; for c in s.chars() { match c { '(' => { if prev == ')' { ans.push('+'); } i += 1; } ')' => { if prev == '(' { ans.push('1'); eval += 1; } ans.push('+'); ans.push('1'); eval += 1; i -= 1; } _ => unreachable!(), } ans.push(c); prev = c; (0 <= i).then_some(())?; } (eval <= k).then_some(())?; (i == 0).then_some(())?; while eval < k { ans.push('+'); ans.push('1'); eval += 1; } Some(ans) }