結果

問題 No.457 (^^*)
ユーザー phsplsphspls
提出日時 2020-06-21 20:20:11
言語 Rust
(1.77.0)
結果
AC  
実行時間 167 ms / 2,000 ms
コード長 1,523 bytes
コンパイル時間 617 ms
コンパイル使用メモリ 139,808 KB
実行使用メモリ 4,384 KB
最終ジャッジ日時 2023-09-16 18:47:53
合計ジャッジ時間 2,527 ms
ジャッジサーバーID
(参考情報)
judge15 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 0 ms
4,376 KB
testcase_01 AC 1 ms
4,376 KB
testcase_02 AC 1 ms
4,380 KB
testcase_03 AC 1 ms
4,380 KB
testcase_04 AC 1 ms
4,380 KB
testcase_05 AC 1 ms
4,376 KB
testcase_06 AC 1 ms
4,376 KB
testcase_07 AC 1 ms
4,376 KB
testcase_08 AC 2 ms
4,376 KB
testcase_09 AC 2 ms
4,380 KB
testcase_10 AC 17 ms
4,376 KB
testcase_11 AC 96 ms
4,376 KB
testcase_12 AC 109 ms
4,380 KB
testcase_13 AC 165 ms
4,376 KB
testcase_14 AC 1 ms
4,376 KB
testcase_15 AC 107 ms
4,376 KB
testcase_16 AC 167 ms
4,384 KB
testcase_17 AC 1 ms
4,380 KB
testcase_18 AC 1 ms
4,376 KB
testcase_19 AC 1 ms
4,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

fn get_result(s: &str, idx: usize, right: usize) -> (usize, usize) {
    let mut right = right;
    let mut left_eye: usize = 0;
    let mut left_asta: usize = 0;
    let mut right_eye: usize = 0;
    let mut right_asta: usize = 0;

    let mut left_result: usize = 0;
    let mut right_result: usize = 0;
    for c in s.trim().chars().skip(idx) {
        match c {
            '*' => {
                 if right_asta == 0 { right_asta += 1; }
                 if left_eye > 1 { left_asta += 1; }
                 if left_asta == 1 { left_result = right; }
            },
            '^' => {
                 if left_eye < 2 { left_eye += 1; }
                 if right_asta > 0 { right_eye += 1; }
                 if right_eye == 2 { right_result = right; }
            },
            ')' => { right -= 1; },
            _ => {}
        }
    };
    (left_result, right_result)
}

fn main() {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();

    let mut rightb: usize = s.trim().chars().filter(|&c| c == ')').count();
    let mut resultl: usize = 0;
    let mut resultr: usize = 0;
    s.trim().chars().enumerate().for_each(|pair| {
        let c = pair.1;
        let idx = pair.0;
        match c {
            '(' => {
                let result = get_result(s.trim(), idx, rightb);
                resultl += result.0;
                resultr += result.1;
            },
            ')' => { rightb -= 1; },
            _ => {}
        }
    });
    println!("{} {}", resultl, resultr);
}
0