結果
| 問題 |
No.22 括弧の対応
|
| コンテスト | |
| ユーザー |
_Clay____
|
| 提出日時 | 2018-10-16 21:55:26 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 5,000 ms |
| コード長 | 777 bytes |
| コンパイル時間 | 16,641 ms |
| コンパイル使用メモリ | 379,500 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-20 07:37:00 |
| 合計ジャッジ時間 | 12,707 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 |
ソースコード
use std::io::*;
fn main() {
let s = stdin();
let mut handle = s.lock();
let mut buf = String::new();
handle.read_line(&mut buf).ok();
let l: Vec<u16> = buf
.trim()
.split_whitespace()
.map(|e| e.parse().ok().unwrap())
.collect();
let n = l[0] as usize;
let k = (l[1] - 1) as usize;
let l = b'(';
buf.clear();
handle.read_line(&mut buf).ok();
let mut v = Vec::with_capacity(n);
let s = buf.trim().as_bytes().iter().enumerate().map(|e| {
if e.1 == &l {
v.push(e.0);
None
} else {
let pop = v.pop().unwrap();
if k == pop {
Some(e.0 + 1)
} else if k == e.0 {
Some(pop + 1)
} else {
None
}
}
}).find(|x| x.is_some());
println!("{}",s.unwrap().unwrap());
}
_Clay____