CF1103D Professional layer

题目描述

Cardbluff 是 Telegram 上流行的体育游戏。每个 Cardbluff 玩家都梦想着进入职业层。现在职业层中有 $n$ 位评委,你正在尝试通过入门考试。你有一个数 $k$,表示你在 Cardbluff 中的技能。 每位评委有一个数 $a_i$,表示他对你能否进入职业层的不确定性指标,以及一个数 $e_i$,表示他玩 Cardbluff 的经验。为了通过考试,你需要与每位评委各进行一场比赛来说服他们。每场比赛的结果是,你可以将第 $i$ 位评委的不确定性 $a_i$ 除以 $a_i$ 的任意一个不超过 $k$ 的正整数因子。如果所有评委的不确定性指标的最大公约数等于 $1$,你就能进入职业层并成为评委。 同时,你希望总耗时最少。如果你与 $x$ 位评委比赛,总经验为 $y$,你将花费 $x \cdot y$ 秒。 请输出进入职业层所需的最少时间。如果无法进入,请输出 $-1$。

输入格式

第一行包含两个整数 $n$ 和 $k$($1 \leq n \leq 10^6$,$1 \leq k \leq 10^{12}$),分别表示评委人数和你的 Cardbluff 技能。 第二行包含 $n$ 个整数,第 $i$ 个数为 $a_i$($1 \leq a_i \leq 10^{12}$),表示第 $i$ 位评委的不确定性。 第三行包含 $n$ 个整数,第 $i$ 个数为 $e_i$($1 \leq e_i \leq 10^9$),表示第 $i$ 位评委的经验。

输出格式

输出一个整数,表示通过考试所需的最少秒数。如果无法通过考试,输出 $-1$。

说明/提示

由 ChatGPT 4.1 翻译