結果

問題 No.1723 [Cherry 3rd Tune *] Dead on
ユーザー phspls
提出日時 2022-09-30 10:30:19
言語 Rust
(1.83.0 + proconio)
結果
WA  
実行時間 -
コード長 1,278 bytes
コンパイル時間 13,757 ms
コンパイル使用メモリ 401,276 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-12-22 18:41:28
合計ジャッジ時間 15,908 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 34 WA * 16
権限があれば一括ダウンロードができます

ソースコード

diff #

use std::collections::HashMap;


fn main() {
    let mut xayb = String::new();
    std::io::stdin().read_line(&mut xayb).ok();
    let xayb: Vec<usize> = xayb.trim().split_whitespace().map(|s| s.parse().unwrap()).collect();
    let x = xayb[0];
    let a = xayb[1];
    let y = xayb[2];
    let b = xayb[3];

    if y == 1 {
        println!("Yes");
        return;
    }
    let mut xfactors = HashMap::new();
    let mut yfactors = HashMap::new();
    let mut xtarget = x;
    let mut ytarget = y;
    for i in 2..=(x as f64).sqrt().floor() as usize {
        while xtarget % i == 0 {
            xtarget /= i;
            *xfactors.entry(i).or_insert(0usize) += 1;
        }
    }
    if xtarget > 1 { xfactors.insert(xtarget, 1); }
    for i in 2..=(y as f64).sqrt().floor() as usize {
        while ytarget % i == 0 {
            ytarget /= i;
            *yfactors.entry(i).or_insert(0usize) += 1;
        }
    }
    if ytarget > 1 { yfactors.insert(ytarget, 1); }
    let mut flg = true;
    for (&key, &ycnt) in yfactors.iter() {
        if let Some(&xcnt) = xfactors.get(&key) {
            flg &= (xcnt * a) % (ycnt * b) == 0;
        } else {
            flg = false;
        }
    }
    if flg {
        println!("Yes");
    } else {
        println!("No");
    }
}
0