Submission #37570392


Source Code Expand

// -*- coding:utf-8-unix -*-
// rustup doc --std --toolchain 1.42.0
pub fn main() {
    let stdin = std::io::stdin();
    let mut stdin = stdin.lock();
    let mut stack = Vec::<u32>::with_capacity(150002);
    let mut state = 0u32;
    let mut flag = true;
    //let stack_b = stack.as_mut_ptr();
    //let stack_l = unsafe { stack_b.add(stack.capacity()) };
    let mut stack_p = stack.as_mut_ptr();
    'outer: while let Ok(buffer) = std::io::BufRead::fill_buf(&mut stdin) {
        for &c in buffer {
            match c {
                b'(' => {
                    //stack.push(state);
                    //if stack_p == stack_l { panic!(); }
                    unsafe {
                        *stack_p = state;
                        stack_p = stack_p.add(1);
                    }
                }
                b')' => {
                    //if let Some(prev) = stack.pop() { state = prev; }
                    //if stack_p == stack_b { panic!(); }
                    //state = 0;
                    unsafe {
                        stack_p = stack_p.sub(1);
                        state = *stack_p;
                    }
                }
                b'a'..=b'z' => {
                    let bit = 1u32 << ((c - b'a') as u32);
                    if (state & bit) != 0 {
                        flag = false;
                        break 'outer;
                    }
                    state |= bit;
                }
                _ => break 'outer,
            }
        }
        let length = buffer.len();
        std::io::BufRead::consume(&mut stdin, length);
    }
    //if flag && stack_p != stack_b { panic!(); } //
    let _ = std::io::Write::write_all(
        &mut std::io::stdout(),
        if flag { b"Yes\n" } else { b"No\n" },
    );
}

Submission Info

Submission Time
Task D - Scope
User mizarjp
Language Rust (1.42.0)
Score 400
Code Size 1784 Byte
Status AC
Exec Time 5 ms
Memory 2200 KiB

Judge Result

Set Name Sample All After contest
Score / Max Score 0 / 0 400 / 400 0 / 0
Status
AC × 4
AC × 24
AC × 2
Set Name Test Cases
Sample example0.txt, example1.txt, example2.txt, example3.txt
All example0.txt, example1.txt, example2.txt, example3.txt, random0.txt, random1.txt, random14.txt, random15.txt, random16.txt, random17.txt, random18.txt, random19.txt, random2.txt, random20.txt, random21.txt, random22.txt, random23.txt, random3.txt, random4.txt, random5.txt, random6.txt, random7.txt, random8.txt, random9.txt
After contest after_contest01.txt, after_contest02.txt
Case Name Status Exec Time Memory
after_contest01.txt AC 5 ms 2000 KiB
after_contest02.txt AC 2 ms 2092 KiB
example0.txt AC 1 ms 2072 KiB
example1.txt AC 1 ms 2048 KiB
example2.txt AC 1 ms 1972 KiB
example3.txt AC 1 ms 2116 KiB
random0.txt AC 2 ms 2136 KiB
random1.txt AC 2 ms 2180 KiB
random14.txt AC 2 ms 2136 KiB
random15.txt AC 2 ms 2200 KiB
random16.txt AC 2 ms 2136 KiB
random17.txt AC 2 ms 2140 KiB
random18.txt AC 2 ms 2148 KiB
random19.txt AC 1 ms 1872 KiB
random2.txt AC 2 ms 2136 KiB
random20.txt AC 1 ms 2012 KiB
random21.txt AC 1 ms 2000 KiB
random22.txt AC 2 ms 2032 KiB
random23.txt AC 1 ms 2020 KiB
random3.txt AC 2 ms 2144 KiB
random4.txt AC 3 ms 2088 KiB
random5.txt AC 3 ms 1920 KiB
random6.txt AC 4 ms 1960 KiB
random7.txt AC 5 ms 1940 KiB
random8.txt AC 5 ms 1960 KiB
random9.txt AC 4 ms 2016 KiB