#ATarc166b. [ARC166B] Make Multiples

[ARC166B] Make Multiples

题目描述

给定一个整数序列 A=(A1,,AN)A=(A_1,\ldots,A_N),以及正整数 a,b,ca, b, c

你可以对该数列进行如下操作(可以进行任意次,包括 00 次):

  • 选择一个整数 ii,其中 1iN1\leq i\leq N,将 AiA_i 替换为 Ai+1A_i+1

你的目标是使数列 AA 中至少各有一个元素是 aa 的倍数、bb 的倍数、cc 的倍数。请你求出达成目标所需的最小操作次数。

输入格式

输入以如下格式从标准输入读入:

NN aa bb cc

A1A_1 \cdots ANA_N

输出格式

输出达成目标所需的最小操作次数。

样例 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

说明/提示

限制条件

  • 1N2×1051\leq N\leq 2\times 10^5
  • 1a,b,c1061\leq a, b, c \leq 10^6
  • 1Ai10181\leq A_i\leq 10^{18}

样例解释 1

通过进行 22 次操作,将 A=(8,9,11)A=(8,9,11) 变为 A=(8,10,12)A=(8,10,12),即可达成目标。

样例解释 2

通过进行 11 次操作,将 A=(14,11,59)A=(14,11,59) 变为 A=(14,11,60)A=(14,11,60),即可达成目标。

样例解释 3

通过进行 33 次操作,将 A=(8,17,5,28,39,13)A=(8,17,5,28,39,13) 变为 A=(8,17,5,30,40,13)A=(8,17,5,30,40,13),即可达成目标。

样例解释 4

通过进行 876537210887543205876537210887543205 次操作,将 A=(123456789123456789)A=(123456789123456789) 变为 A=(999994000010999994)A=(999994000010999994),即可达成目标。

由 ChatGPT 4.1 翻译