結果
問題 | No.1748 Parking Lot |
ユーザー |
![]() |
提出日時 | 2021-11-19 21:39:34 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 5,171 bytes |
コンパイル時間 | 14,557 ms |
コンパイル使用メモリ | 400,076 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-12-31 22:09:49 |
合計ジャッジ時間 | 14,215 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 |
ソースコード
pub mod utils {const DYX: [(isize, isize); 8] = [(0, 1),(1, 0),(0, -1),(-1, 0),(1, 1),(-1, 1),(1, -1),(-1, -1),];pub fn try_adj(y: usize, x: usize, dir: usize, h: usize, w: usize) -> Option<(usize, usize)> {let ny = y as isize + DYX[dir].0;let nx = x as isize + DYX[dir].1;if ny >= 0 && nx >= 0 && ny < h as isize && nx < w as isize {Some((ny as usize, nx as usize))} else {None}}}#[derive(Default)]/// NOTE/// declare variables to reduce the number of parameters for dp and dfs etc.pub struct Solver {}impl Solver {pub fn solve(&mut self) {let stdin = std::io::stdin();let mut scn = fastio::Scanner::new(stdin.lock());let n = scn.read::<i64>();let k = scn.read::<i64>();if n == 1 {println!("{}", 1);return ;}if k == n-1 {println!("{}", n);return ;}println!("{}", n-1);}}pub mod fastio {use std::collections::VecDeque;use std::io::BufWriter;use std::io::Write;pub struct Writer<W: std::io::Write> {writer: std::io::BufWriter<W>,}impl<W: std::io::Write> Writer<W> {pub fn new(write: W) -> Writer<W> {Writer {writer: BufWriter::new(write),}}pub fn flush(&mut self) {self.writer.flush().unwrap();}pub fn write<S: std::string::ToString>(&mut self, s: S) {self.writer.write(s.to_string().as_bytes()).unwrap();}pub fn writeln<S: std::string::ToString>(&mut self, s: S) {self.write(s);self.write('\n');}}pub struct Scanner<R> {stdin: R,buffer: VecDeque<String>,}impl<R: std::io::BufRead> Scanner<R> {pub fn new(s: R) -> Scanner<R> {Scanner {stdin: s,buffer: VecDeque::new(),}}pub fn read<T: std::str::FromStr>(&mut self) -> T {while self.buffer.is_empty() {let line = self.read_line();for w in line.split_whitespace() {self.buffer.push_back(String::from(w));}}self.buffer.pop_front().unwrap().parse::<T>().ok().unwrap()}pub fn read_line(&mut self) -> String {let mut line = String::new();let _ = self.stdin.read_line(&mut line);line.trim_end().to_string()}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()}}}pub mod macros {#[macro_export]#[allow(unused_macros)]macro_rules ! max {($ x : expr ) => ($ x ) ; ($ x : expr , $ ($ y : expr ) ,+ ) => {std :: cmp :: max ($ x , max ! ($ ($ y ) ,+ ) ) } }#[macro_export]#[allow(unused_macros)]macro_rules ! min {($ x : expr ) => ($ x ) ; ($ x : expr , $ ($ y : expr ) ,+ ) => {std :: cmp :: min ($ x , min ! ($ ($ y ) ,+ ) ) } }#[macro_export]#[allow(unused_macros)]/// Display a line of variablesmacro_rules ! echo {() => {{use std :: io :: {self , Write } ; writeln ! (io :: stderr () , "{}:" , line ! () ) . unwrap () ; } } ; ($ e : expr ,$ ($ es : expr ) ,+ $ (, ) ? ) => {{use std :: io :: {self , Write } ; write ! (io :: stderr () , "{}:" , line ! () ) . unwrap () ; write !(io :: stderr () , " {} = {:?}" , stringify ! ($ e ) , $ e ) . unwrap () ; $ (write ! (io :: stderr () , " {} = {:?}" , stringify ! ($ es ) ,$ es ) . unwrap () ; ) + writeln ! (io :: stderr () ) . unwrap () ; } } ; ($ e : expr ) => {{use std :: io :: {self , Write } ; let result =$ e ; writeln ! (io :: stderr () , "{}: {} = {:?}" , line ! () , stringify ! ($ e ) , result ) . unwrap () ; result } } ; }#[macro_export]#[allow(unused_macros)]/// Display a line of variables with colorsmacro_rules ! cecho {() => {{use std :: io :: {self , Write } ; writeln ! (io :: stderr () , "\x1b[31;1m{}\x1b[m:" , line ! () ) . unwrap () ; }} ; ($ e : expr , $ ($ es : expr ) ,+ $ (, ) ? ) => {{use std :: io :: {self , Write } ; write ! (io :: stderr () , "\x1b[31;1m{}\x1b[m:" ,line ! () ) . unwrap () ; write ! (io :: stderr () , " \x1b[92;1m{}\x1b[m = {:?}" , stringify ! ($ e ) , $ e ) . unwrap () ; $ (write ! (io:: stderr () , " \x1b[92;1m{}\x1b[m = {:?}" , stringify ! ($ es ) , $ es ) . unwrap () ; ) + writeln ! (io :: stderr () ) . unwrap () ; } } ;($ e : expr ) => {{use std :: io :: {self , Write } ; let result = $ e ; writeln ! (io :: stderr () , "\x1b[31;1m{}\x1b[m: \x1b[92;1m{}\x1b[m= {:?}" , line ! () , stringify ! ($ e ) , result ) . unwrap () ; result } } ; }}fn main() {std::thread::Builder::new().stack_size(64 * 1024 * 1024).spawn(|| Solver::default().solve()).unwrap().join().unwrap();}