結果
問題 | No.2246 1333-like Number |
ユーザー | otamay6 |
提出日時 | 2023-03-17 21:31:23 |
言語 | Rust (1.77.0 + proconio) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 6,093 bytes |
コンパイル時間 | 23,893 ms |
コンパイル使用メモリ | 383,196 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-18 10:17:24 |
合計ジャッジ時間 | 25,017 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1 ms
6,812 KB |
testcase_01 | AC | 1 ms
6,940 KB |
testcase_02 | AC | 1 ms
6,944 KB |
testcase_03 | AC | 1 ms
6,940 KB |
testcase_04 | AC | 1 ms
6,940 KB |
testcase_05 | AC | 1 ms
6,940 KB |
testcase_06 | AC | 1 ms
6,944 KB |
testcase_07 | AC | 1 ms
6,944 KB |
testcase_08 | AC | 1 ms
6,940 KB |
testcase_09 | AC | 1 ms
6,944 KB |
testcase_10 | AC | 1 ms
6,940 KB |
testcase_11 | AC | 1 ms
6,944 KB |
testcase_12 | AC | 1 ms
6,944 KB |
testcase_13 | AC | 1 ms
6,944 KB |
testcase_14 | AC | 1 ms
6,940 KB |
testcase_15 | AC | 1 ms
6,944 KB |
testcase_16 | AC | 1 ms
6,944 KB |
testcase_17 | AC | 1 ms
6,940 KB |
testcase_18 | AC | 1 ms
6,940 KB |
testcase_19 | AC | 1 ms
6,940 KB |
testcase_20 | AC | 1 ms
6,940 KB |
testcase_21 | AC | 1 ms
6,944 KB |
testcase_22 | AC | 1 ms
6,944 KB |
testcase_23 | AC | 2 ms
6,940 KB |
testcase_24 | AC | 1 ms
6,940 KB |
testcase_25 | AC | 1 ms
6,940 KB |
testcase_26 | AC | 1 ms
6,940 KB |
コンパイルメッセージ
warning: value assigned to `ans` is never read --> src/main.rs:202:13 | 202 | let mut ans= String::new(); | ^^^ | = help: maybe it is overwritten before being read? = note: `#[warn(unused_assignments)]` on by default
ソースコード
#[allow(unused_imports)] use std::{ cell::RefCell, fmt::Debug, io::{self, BufRead, Read, Write}, rc::Rc, str::{FromStr, SplitWhitespace}, }; #[macro_export] macro_rules! input { (from $scanner:ident; $($tt:tt)*) => { $crate::input_inner!(@scanner($scanner), @tts($($tt)*)) }; ($($tt:tt)*) => { let __scanner = $crate::DEFAULT_SCANNER.with(|__scanner| __scanner.clone()); let mut __scanner_ref = __scanner.borrow_mut(); if let $crate::Scanner::Uninited = *__scanner_ref { *__scanner_ref = $crate::Scanner::stdin_auto().unwrap(); } $crate::input_inner!(@scanner(__scanner_ref), @tts($($tt)*)); ::std::mem::drop(__scanner_ref); ::std::mem::drop(__scanner); }; } #[macro_export] macro_rules! input_inner { (@scanner($scanner:ident), @tts()) => {}; (@scanner($scanner:ident), @tts(mut $single_tt_pat:tt : $readable:tt)) => { let mut $single_tt_pat = $crate::read!(from $scanner { $readable }); }; (@scanner($scanner:ident), @tts($single_tt_pat:tt : $readable:tt)) => { let $single_tt_pat = $crate::read!(from $scanner { $readable }); }; (@scanner($scanner:ident), @tts(mut $single_tt_pat:tt : $readable:tt, $($rest:tt)*)) => { $crate::input_inner!(@scanner($scanner), @tts(mut $single_tt_pat: $readable)); $crate::input_inner!(@scanner($scanner), @tts($($rest)*)); }; (@scanner($scanner:ident), @tts($single_tt_pat:tt : $readable:tt, $($rest:tt)*)) => { $crate::input_inner!(@scanner($scanner), @tts($single_tt_pat: $readable)); $crate::input_inner!(@scanner($scanner), @tts($($rest)*)); }; } #[macro_export] macro_rules! read { (from $scanner:ident { [$tt:tt] }) => { $crate::read!(from $scanner { [$tt; $crate::read!(from $scanner { usize })] }) }; (from $scanner:ident { [$tt:tt; $n:expr] }) => { (0..$n).map(|_| $crate::read!(from $scanner { $tt })).collect::<Vec<_>>() }; (from $scanner:ident { ($($tt:tt),+) }) => { ($($crate::read!(from $scanner { $tt })),*) }; (from $scanner:ident { { $f:expr } }) => { $crate::FnOnceExt::<_>::call_once_from_reader($f, &mut $scanner) }; (from $scanner:ident { $ty:ty }) => { <$ty as $crate::Readable>::read_from_scanner(&mut $scanner) }; } #[macro_export] macro_rules! readable { ($name:ident; |$scanner:ident| { $($body:tt)* }) => { $crate::readable!($name; |$scanner| -> () { $($body)* }); }; ($name:ident; |$scanner:ident| $expr:expr) => { $crate::readable!($name; |$scanner| -> () { $expr }); }; ($name:ident; |$scanner:ident| -> $output:ty { $($body:tt)* }) => { enum $name {} impl $crate::Readable for $name { type Output = $output; fn read_from_scanner(mut $scanner: &mut $crate::Scanner) -> $output { $($body)* } } }; } #[inline] pub fn usize1(n: usize) -> usize { n - 1 } #[inline] pub fn bytes(s: String) -> Vec<u8> { s.into() } #[doc(hidden)] pub trait FnOnceExt<A> { type Output; fn call_once_from_reader(this: Self, scanner: &mut Scanner) -> Self::Output; } impl<A, O, F> FnOnceExt<A> for F where A: FromStr, A::Err: Debug, F: FnOnce(A) -> O, { type Output = O; #[inline] fn call_once_from_reader(this: Self, scanner: &mut Scanner) -> O { this(A::read_from_scanner(scanner)) } } pub enum Scanner { Uninited, Once { words: SplitWhitespace<'static>, }, Lines { rdr: Box<dyn BufRead>, words: SplitWhitespace<'static>, }, } impl Scanner { pub fn stdin_auto() -> io::Result<Self> { if cfg!(debug_assertions) { Ok(Self::lines(Box::leak(Box::new(io::stdin())).lock())) } else { Self::once(io::stdin()) } } pub fn once<R: Read>(mut rdr: R) -> io::Result<Self> { let mut buf = String::with_capacity(1024); rdr.read_to_string(&mut buf)?; let words = Box::leak(buf.into_boxed_str()).split_whitespace(); Ok(Self::Once { words }) } pub fn lines<R: BufRead + 'static>(rdr: R) -> Self { Self::Lines { rdr: Box::new(rdr), words: "".split_whitespace(), } } pub fn parse_next_unwrap<T: FromStr>(&mut self) -> T where T::Err: Debug, { match self { Self::Uninited => None, Self::Once { words } => words.next(), Self::Lines { rdr, words } => words.next().or_else(|| { let mut line = "".to_owned(); rdr.read_line(&mut line).unwrap(); *words = Box::leak(line.into_boxed_str()).split_whitespace(); words.next() }), } .expect("reached EOF") .parse() .unwrap() } } thread_local! { pub static DEFAULT_SCANNER: Rc<RefCell<Scanner>> = Rc::new(RefCell::new(Scanner::Uninited)); } pub trait Readable { type Output; fn read_from_scanner(scanner: &mut Scanner) -> Self::Output; } impl<T: FromStr> Readable for T where T::Err: Debug, { type Output = Self; fn read_from_scanner(scanner: &mut Scanner) -> Self { scanner.parse_next_unwrap() } } #[allow(unused_macros)] macro_rules! debug { ($($a:expr),* $(,)*) => { #[cfg(debug_assertions)] eprintln!(concat!($("| ", stringify!($a), "={:?} "),*, "|"), $(&$a),*); #[cfg(debug_assertions)] std::io::stderr().flush().unwrap(); }; } fn main() { let mut ans= String::new(); input!{ mut n: usize, } // a, bの選び型は36通り n -= 1; let mut v = Vec::new(); for c in 10..100 { let a = c / 10; let b = c % 10; if a < b { v.push((a,b)); } } debug!(v); let keta = n / v.len() + 2; let kumi = n % v.len(); let (a,b) = v[kumi]; ans = a.to_string() + b.to_string().as_str().repeat(keta-1).as_str(); println!("{}", ans); }