結果
問題 | No.2246 1333-like Number |
ユーザー |
![]() |
提出日時 | 2023-03-17 21:31:23 |
言語 | Rust (1.83.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 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
コンパイルメッセージ
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 FwhereA: 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) -> TwhereT::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 TwhereT::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);}