【模拟】桐桐的游戏

本文介绍了桐桐玩的一款跳棋游戏,游戏规则是玩家从1号段出发,每次顺时针跳K段,目标到达Z号段,但过程中不能经过障碍段。题目描述了如何计算最小的K值,以及给出了输入输出样例。解决方法是通过模拟来找到答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

桐桐最近在玩一个跳棋游戏,规则是:有个圆圈,分成N等分,顺时针标号为1到N。假设其中有些段的障碍。桐桐从1号段出发,每次顺时针跳K段,目标是跳到第Z号段,但过程中不能跳到障碍段上去。
假如,N=13,K=3,Z=9,则跳的路径上的段号为1,4,7,10,13,3,6和9,在此假设没有跳到障碍段上去。
现在请帮桐桐求出最小的K。

输入

第一行有整数N,Z和M(2≤N≤1000,2≤Z,0≤M≤N-2)。
N表示圆分成的段数,Z表示桐桐想跳到的目标段号,M表示障碍数。
第二行有M个数,表示有障碍的段号。段1和段Z保证没有障碍。

输出

一个数K。

输入样例#1
 7 4 1
 6
输入样例#2
 9 7 2
 2 3
输入样例#3
 7 6 2
 2 4
输出样例#1
 1
输出样例#2
 3
输出样例#3
 5 

思路

模拟!上!

#include<Algorithm>
#include<Iostream>
#include<Cstring>
#include<Cstdio>
int Ans,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值