题目描述
给定一个整数序列 A=(A1,…,AN),以及正整数 a,b,c。
你可以对该数列进行如下操作(可以进行任意次,包括 0 次):
- 选择一个整数 i,其中 1≤i≤N,将 Ai 替换为 Ai+1。
你的目标是使数列 A 中至少各有一个元素是 a 的倍数、b 的倍数、c 的倍数。请你求出达成目标所需的最小操作次数。
输入格式
输入以如下格式从标准输入读入:
N a b c
A1 ⋯ AN
输出格式
输出达成目标所需的最小操作次数。
样例 1
输入
3 3 4 5
8 9 11
输出
2
样例 2
输入
3 3 4 5
14 11 59
输出
1
样例 3
输入
6 10 20 30
8 17 5 28 39 13
输出
3
样例 4
输入
1 999997 999998 999999
123456789123456789
输出
876537210887543205
说明/提示
限制条件
- 1≤N≤2×105
- 1≤a,b,c≤106
- 1≤Ai≤1018
样例解释 1
通过进行 2 次操作,将 A=(8,9,11) 变为 A=(8,10,12),即可达成目标。
样例解释 2
通过进行 1 次操作,将 A=(14,11,59) 变为 A=(14,11,60),即可达成目标。
样例解释 3
通过进行 3 次操作,将 A=(8,17,5,28,39,13) 变为 A=(8,17,5,30,40,13),即可达成目标。
样例解释 4
通过进行 876537210887543205 次操作,将 A=(123456789123456789) 变为 A=(999994000010999994),即可达成目标。
由 ChatGPT 4.1 翻译