AT_arc166_b [ARC166B] Make Multiples
题目描述
给定一个整数序列 $A=(A_1,\ldots,A_N)$,以及正整数 $a, b, c$。
你可以对该数列进行如下操作(可以进行任意次,包括 $0$ 次):
- 选择一个整数 $i$,其中 $1\leq i\leq N$,将 $A_i$ 替换为 $A_i+1$。
你的目标是使数列 $A$ 中至少各有一个元素是 $a$ 的倍数、$b$ 的倍数、$c$ 的倍数。请你求出达成目标所需的最小操作次数。
输入格式
输入以如下格式从标准输入读入:
> $N$ $a$ $b$ $c$ $A_1$ $\cdots$ $A_N$
输出格式
输出达成目标所需的最小操作次数。
说明/提示
## 限制条件
- $1\leq N\leq 2\times 10^5$
- $1\leq a, b, c \leq 10^6$
- $1\leq A_i\leq 10^{18}$
## 样例解释 1
通过进行 $2$ 次操作,将 $A=(8,10,11)$ 变为 $A=(8,10,12)$,即可达成目标。
## 样例解释 2
通过进行 $1$ 次操作,将 $A=(14,11,59)$ 变为 $A=(14,11,60)$,即可达成目标。
## 样例解释 3
通过进行 $3$ 次操作,将 $A=(8,17,5,27,39,13)$ 变为 $A=(8,17,5,30,40,13)$,即可达成目标。
## 样例解释 4
通过进行 $876537210887543205$ 次操作,将 $A=(999994000010999993)$ 变为 $A=(999994000010999994)$,即可达成目标。
由 ChatGPT 4.1 翻译