結果
問題 | No.598 オーバーフローファンタジー |
ユーザー |
|
提出日時 | 2017-11-24 22:29:48 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 1 ms / 2,000 ms |
コード長 | 2,328 bytes |
コンパイル時間 | 12,167 ms |
コンパイル使用メモリ | 387,004 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-26 01:36:39 |
合計ジャッジ時間 | 13,245 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 28 |
ソースコード
#[allow(unused_imports)]use std::cmp::{max, min, Ordering};#[allow(unused_imports)]use std::collections::{HashMap, HashSet, BinaryHeap, VecDeque, BTreeSet, BTreeMap};#[allow(unused_imports)]use std::iter::FromIterator;#[allow(unused_imports)]use std::io::stdin;mod util {use std::io::stdin;use std::str::FromStr;use std::fmt::Debug;#[allow(dead_code)]pub fn line() -> String {let mut line: String = String::new();stdin().read_line(&mut line).unwrap();line.trim().to_string()}#[allow(dead_code)]pub fn gets<T: FromStr>() -> Vec<T>where<T as FromStr>::Err: Debug,{let mut line: String = String::new();stdin().read_line(&mut line).unwrap();line.split_whitespace().map(|t| t.parse().unwrap()).collect()}}#[allow(unused_macros)]macro_rules! get {($t:ty) => {{let mut line: String = String::new();stdin().read_line(&mut line).unwrap();line.trim().parse::<$t>().unwrap()}};($($t:ty),*) => {{let mut line: String = String::new();stdin().read_line(&mut line).unwrap();let mut iter = line.split_whitespace();($(iter.next().unwrap().parse::<$t>().unwrap(),)*)}};($t:ty; $n:expr) => {(0..$n).map(|_|get!($t)).collect::<Vec<_>>()};($($t:ty),*; $n:expr) => {(0..$n).map(|_|get!($($t),*)).collect::<Vec<_>>()};($t:ty ;;) => {{let mut line: String = String::new();stdin().read_line(&mut line).unwrap();line.split_whitespace().map(|t| t.parse::<$t>().unwrap()).collect::<Vec<_>>()}};}#[allow(unused_macros)]macro_rules! debug {($($a:expr),*) => {println!(concat!($(stringify!($a), " = {:?}, "),*), $($a),*);}}fn main() {let n = get!(usize);let x = get!(usize);let a = get!(usize);let b = get!(usize);let a1 = (x + a - 1) / a;let u = 2usize.pow((n - 1) as u32);let a2 = (u - x + b - 1) / b;println!("{}", min(a1, a2));}