#2327. 神秘魔法圆环

神秘魔法圆环

题目描述

在一个遥远的魔法王国里,有一个被称为“魔法环”的神秘圆环,它被分成了N个等分,每个分段都被赋予了一个从1到N的魔法编号。然而,邪恶的巫师在某些分段上施加了咒语,使得这些分段变成了障碍,任何踏上这些障碍的生物都会被困住。

桐桐,一位勇敢的年轻巫师,接受了一项挑战:从编号1的魔法分段出发,使用他的魔法跳跃能力,每次跳跃K个分段,目标是到达编号Z的魔法分段。但是,桐桐必须避开那些被诅咒的障碍分段。

在这个魔法环上,每个分段都充满了不同的魔法能量,跳跃时桐桐可以吸收这些能量来增强自己的魔法力量。但是,如果桐桐跳到了障碍分段,他不仅会被困住,还会失去之前吸收的所有能量。

为了成为王国中最强大的巫师,桐桐需要找到最小的K值,这样他就可以以最少的跳跃次数,安全地到达目的地,同时收集尽可能多的魔法能量。

现在,桐桐需要你的帮助,用你的智慧来计算出最小的K值,帮助他完成这次魔法冒险,赢得王国的尊重,并获得传说中的魔法宝藏作为奖励!

假如,N=13, K=3, Z=9,则跳的路径上的段号为 1, 4, 7, 10, 13, 3, 6 和 9,在此假设没有跳到障碍段上去。

输入格式

第一行有三个整数 N, Z 和 M,其中 N 表示圆分成的段数,Z 表示桐桐想跳到的目标段号,M 表示障碍数。 下面行有 M 个整数,表示有障碍的段号。段 1 和段 Z 保证没有障碍。

输出格式

一个整数 k

7 4 1
6
1

2≤N≤1000, 2≤Z, 0 ≤M≤N-2