Submission #18719574
Source Code Expand
fn main() {
let (r, w) = (std::io::stdin(), std::io::stdout());
let mut sc = IO::new(r.lock(), w.lock());
let mut stack = vec![];
let mut size = 0;
let q: usize = sc.read();
let l: usize = sc.read();
for _ in 0..q {
let s: String = sc.read();
match s.as_str() {
"Push" => {
let n: usize = sc.read();
let m: i64 = sc.read();
stack.push((n, m));
size += n;
if size > l {
println!("FULL");
return;
}
}
"Pop" => {
let mut pop: usize = sc.read();
if size < pop {
println!("EMPTY");
return;
}
size -= pop;
while let Some((count, m)) = stack.pop() {
if pop < count {
let add = count - pop;
stack.push((add, m));
pop = 0;
} else {
pop -= count;
}
if pop == 0 {
break;
}
}
if pop != 0 {
println!("EMPTY");
return;
}
}
"Top" => {
if stack.is_empty() {
println!("EMPTY");
return;
}
let top = stack[stack.len() - 1].1;
println!("{}", top);
}
"Size" => {
println!("{}", size);
}
_ => unreachable!(),
}
}
println!("SAFE");
}
pub struct IO<R, W: std::io::Write>(R, std::io::BufWriter<W>);
impl<R: std::io::Read, W: std::io::Write> IO<R, W> {
pub fn new(r: R, w: W) -> Self {
Self(r, std::io::BufWriter::new(w))
}
pub fn write<S: ToString>(&mut self, s: S) {
use std::io::Write;
self.1.write_all(s.to_string().as_bytes()).unwrap();
}
pub fn read<T: std::str::FromStr>(&mut self) -> T {
use std::io::Read;
let buf = self
.0
.by_ref()
.bytes()
.map(|b| b.unwrap())
.skip_while(|&b| b == b' ' || b == b'\n' || b == b'\r' || b == b'\t')
.take_while(|&b| b != b' ' && b != b'\n' && b != b'\r' && b != b'\t')
.collect::<Vec<_>>();
unsafe { std::str::from_utf8_unchecked(&buf) }
.parse()
.ok()
.expect("Parse error.")
}
pub fn vec<T: std::str::FromStr>(&mut self, n: usize) -> Vec<T> {
(0..n).map(|_| self.read()).collect()
}
pub fn chars(&mut self) -> Vec<char> {
self.read::<String>().chars().collect()
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - 天下一後入れ先出しデータ構造 |
| User | kenkoooo |
| Language | Rust (1.42.0) |
| Score | 60 |
| Code Size | 2963 Byte |
| Status | AC |
| Exec Time | 124 ms |
| Memory | 2404 KiB |
Judge Result
| Set Name | small | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 30 / 30 | 30 / 30 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| small | small/input_file_01, small/input_file_02, small/input_file_03, small/input_file_04, small/input_file_05, small/input_file_07, small/input_file_08, small/input_file_09, small/input_file_10, small/input_file_11, small/input_file_13, small/input_file_14, small/input_file_15, small/input_file_16, small/input_file_17, small/small_0, small/small_1, small/small_10, small/small_11, small/small_12, small/small_13, small/small_2, small/small_3, small/small_4, small/small_5, small/small_6, small/small_7, small/small_8, small/small_9 |
| All | large/input_file_06, large/input_file_12, large/input_file_18, large/input_file_19, large/input_file_20, large/input_file_21, large/input_file_22, large/input_file_23, large/input_file_24, large/input_file_25, large/input_file_26, large/input_file_27, large/input_file_28, large/input_file_29, large/input_file_30, large/input_file_31, large/input_file_32, large/input_file_33, large/input_file_34, large/input_file_35, large/input_file_36, large/input_file_37, large/input_file_38, large/input_file_39, large/input_file_40, large/input_file_41, large/input_file_42, large/input_file_43, large/input_file_44, large/input_file_45, large/input_file_46, large/input_file_47, large/input_file_48, large/input_file_49, large/input_file_50, small/input_file_01, small/input_file_02, small/input_file_03, small/input_file_04, small/input_file_05, small/input_file_07, small/input_file_08, small/input_file_09, small/input_file_10, small/input_file_11, small/input_file_13, small/input_file_14, small/input_file_15, small/input_file_16, small/input_file_17, small/small_0, small/small_1, small/small_10, small/small_11, small/small_12, small/small_13, small/small_2, small/small_3, small/small_4, small/small_5, small/small_6, small/small_7, small/small_8, small/small_9 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| large/input_file_06 | AC | 12 ms | 2300 KiB |
| large/input_file_12 | AC | 2 ms | 2040 KiB |
| large/input_file_18 | AC | 2 ms | 2128 KiB |
| large/input_file_19 | AC | 2 ms | 2032 KiB |
| large/input_file_20 | AC | 1 ms | 2044 KiB |
| large/input_file_21 | AC | 3 ms | 2064 KiB |
| large/input_file_22 | AC | 2 ms | 1968 KiB |
| large/input_file_23 | AC | 2 ms | 2024 KiB |
| large/input_file_24 | AC | 15 ms | 2084 KiB |
| large/input_file_25 | AC | 21 ms | 1888 KiB |
| large/input_file_26 | AC | 16 ms | 2008 KiB |
| large/input_file_27 | AC | 81 ms | 1972 KiB |
| large/input_file_28 | AC | 74 ms | 2172 KiB |
| large/input_file_29 | AC | 82 ms | 2036 KiB |
| large/input_file_30 | AC | 45 ms | 2020 KiB |
| large/input_file_31 | AC | 70 ms | 2064 KiB |
| large/input_file_32 | AC | 9 ms | 2036 KiB |
| large/input_file_33 | AC | 52 ms | 2024 KiB |
| large/input_file_34 | AC | 18 ms | 2404 KiB |
| large/input_file_35 | AC | 70 ms | 2064 KiB |
| large/input_file_36 | AC | 68 ms | 1996 KiB |
| large/input_file_37 | AC | 44 ms | 2000 KiB |
| large/input_file_38 | AC | 35 ms | 2056 KiB |
| large/input_file_39 | AC | 107 ms | 2072 KiB |
| large/input_file_40 | AC | 26 ms | 2108 KiB |
| large/input_file_41 | AC | 27 ms | 2008 KiB |
| large/input_file_42 | AC | 124 ms | 2056 KiB |
| large/input_file_43 | AC | 18 ms | 2136 KiB |
| large/input_file_44 | AC | 43 ms | 2032 KiB |
| large/input_file_45 | AC | 20 ms | 1988 KiB |
| large/input_file_46 | AC | 25 ms | 1948 KiB |
| large/input_file_47 | AC | 57 ms | 2112 KiB |
| large/input_file_48 | AC | 52 ms | 1900 KiB |
| large/input_file_49 | AC | 59 ms | 2096 KiB |
| large/input_file_50 | AC | 18 ms | 2316 KiB |
| small/input_file_01 | AC | 2 ms | 2020 KiB |
| small/input_file_02 | AC | 2 ms | 2044 KiB |
| small/input_file_03 | AC | 2 ms | 2032 KiB |
| small/input_file_04 | AC | 1 ms | 2036 KiB |
| small/input_file_05 | AC | 2 ms | 2076 KiB |
| small/input_file_07 | AC | 1 ms | 1948 KiB |
| small/input_file_08 | AC | 2 ms | 2088 KiB |
| small/input_file_09 | AC | 2 ms | 2056 KiB |
| small/input_file_10 | AC | 3 ms | 2128 KiB |
| small/input_file_11 | AC | 2 ms | 2032 KiB |
| small/input_file_13 | AC | 2 ms | 2028 KiB |
| small/input_file_14 | AC | 2 ms | 1952 KiB |
| small/input_file_15 | AC | 2 ms | 2084 KiB |
| small/input_file_16 | AC | 3 ms | 2072 KiB |
| small/input_file_17 | AC | 2 ms | 2100 KiB |
| small/small_0 | AC | 2 ms | 2060 KiB |
| small/small_1 | AC | 2 ms | 1960 KiB |
| small/small_10 | AC | 2 ms | 2088 KiB |
| small/small_11 | AC | 2 ms | 2032 KiB |
| small/small_12 | AC | 2 ms | 1996 KiB |
| small/small_13 | AC | 4 ms | 2096 KiB |
| small/small_2 | AC | 2 ms | 2016 KiB |
| small/small_3 | AC | 1 ms | 2056 KiB |
| small/small_4 | AC | 2 ms | 2016 KiB |
| small/small_5 | AC | 2 ms | 2040 KiB |
| small/small_6 | AC | 1 ms | 2056 KiB |
| small/small_7 | AC | 1 ms | 2128 KiB |
| small/small_8 | AC | 1 ms | 2072 KiB |
| small/small_9 | AC | 2 ms | 2016 KiB |