結果
| 問題 |
No.46 はじめのn歩
|
| ユーザー |
|
| 提出日時 | 2022-12-30 18:04:31 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 5,000 ms |
| コード長 | 1,602 bytes |
| コンパイル時間 | 11,013 ms |
| コンパイル使用メモリ | 401,872 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-11-25 16:55:10 |
| 合計ジャッジ時間 | 12,026 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 |
ソースコード
use std::io;
fn main() {
// まず、インプットの標準ライブラリを
// 使うために、可変長の文字列を定義する。
let mut ab = String::new();
// インプットの標準ライブラリの
// read_lineの引数はString。
// expectは失敗時に実行される。
io::stdin().read_line(&mut ab)
.expect("入力エラー。");
// trimは前後の空白を取り除く関数だが
// これが必要な理由はわからないが
// trimを抜いた場合panicが起こり
// エラーになる。
// splitで指定した文字で区切る(スペース)
// mapで変数の型を変換する。
// 下記の場合xが一時的な変数として代入される
// map内のparse関数によって変数に指定してある
// Vecter型に変換する。
// collect関数によってイテレータを使い
// Vectorとして数値を入れる
let ab: Vec<u32> = ab.trim().split(" ")
.map(|x| x.parse().unwrap()).collect();
// Rustでは整数の割り算は小数点が表示されない。
// aがab[0], bがab[1]として計算
// ab[1] / ab[0]だと、余りの分が歩数として
// 計算されないため、失敗。
// そのため、割る数にab[0]をプラスすることで
// 割ったときに1増えることになる。
// だが、割り切れる数だった場合数字が小数点を
// オーバーしてしまいプラス2になるため、
// -1をしておく。
println!("{}", (ab[1] + ab[0] - 1) / ab[0]);
}