結果
問題 | No.313 π |
ユーザー |
|
提出日時 | 2020-04-25 18:59:16 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 27 ms / 5,000 ms |
コード長 | 2,533 bytes |
コンパイル時間 | 13,257 ms |
コンパイル使用メモリ | 380,740 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-07 16:15:08 |
合計ジャッジ時間 | 14,781 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 32 |
ソースコード
use std::io::{stdin, stdout, StdinLock, StdoutLock, BufReader, BufWriter, BufRead, Write};fn main() {let (std_in, std_out) = (stdin(), stdout());let mut io = IO::new(std_in.lock(), std_out.lock());let mut table = [20104, 20063, 19892, 20011, 19874, 20199, 19898, 20163, 19956, 19841];let s = io.rb();for c in s {if c == '.' as u8 {continue;}let ind = (c - ('0' as u8)) as usize;if ind < 10 {table[ind] -= 1;}}let mut ans = Vec::new();for i in 0..10 {if table[i] < 0 {ans.push(i);}}for i in 0..10 {if table[i] > 0 {ans.push(i);}}io.wv(&ans);}struct IO<'a> {br: BufReader<StdinLock<'a>>,bw: BufWriter<StdoutLock<'a>>,}#[allow(dead_code)]impl IO<'_> {fn new<'a>(il: StdinLock<'a>, ol: StdoutLock<'a>) -> IO<'a> {IO {br: BufReader::new(il), bw: BufWriter::new(ol) }}fn r<T: std::str::FromStr>(&mut self) -> T {let mut buf = String::new();self.br.read_line(&mut buf).ok();buf.trim().parse().ok().unwrap()}fn rb(&mut self) -> Vec<u8> {let mut buf = String::new();self.br.read_line(&mut buf).ok();buf.trim().as_bytes().to_vec()}fn rv<T: std::str::FromStr>(&mut self) -> Vec<T> {let mut buf = String::new();self.br.read_line(&mut buf).ok();buf.trim().split_whitespace().map(|e| e.parse().ok().unwrap()).collect()}fn rvb(&mut self) -> Vec<Vec<u8>> {let mut buf = String::new();self.br.read_line(&mut buf).ok();buf.trim().split_whitespace().map(|e| e.as_bytes().to_vec()).collect()}fn w<T: std::fmt::Display>(&mut self, x: T) {let _ = writeln!(self.bw, "{}", x);}fn wb(&mut self, s: &[u8]) {let _ = writeln!(self.bw, "{}", unsafe{std::str::from_utf8_unchecked(s)});}fn wv<T: std::fmt::Display>(&mut self, v: &[T]) {let _ = write!(self.bw, "{}", v[0].to_string());for x in v[1..].iter() {let _ = write!(self.bw, " {}", x.to_string());}let _ = writeln!(self.bw);}fn wvb(&mut self, v: &[Vec<u8>]) {let _ = write!(self.bw, "{}", unsafe{std::str::from_utf8_unchecked(&v[0])});for x in v[1..].iter() {let _ = write!(self.bw, " {}", unsafe{std::str::from_utf8_unchecked(x)});}let _ = writeln!(self.bw);}}