题目背景
性★感☆大★草 在☆线★开☆门
定☆数★一☆零 实★则☆虚★高
加★速☆转★圈 开☆幕★雷☆击
疯☆狂★交☆互 劲★爆☆咚★咚
黑★蚊☆子★多 邀☆您★来☆爽
超☆越★模☆式 直★角☆旋★钮
山★东☆卫★星 马☆上★联☆动
变☆成★十☆加 已★经☆爽★爆
题目描述
Hikari 的面前有 n(1\leq n\leq 1000)n(1≤n≤1000) 级台阶,每 1s1s 她可以向上跳 m(1\leq m\leq n)m(1≤m≤n) 级台阶。(不在中间的台阶上停留)
台阶上有 k(k\leq 10)k(k≤10) 个特殊的平台 a_ia
i
,Hikari 在该平台 停留 时会使得 mm 增加 11。
请问 Hikari 到达台阶顶部花费的时间。
输入格式
共 22 行。
第 11 行输入 33 个非负整数 n,m,kn,m,k。
第 22 行输入 kk 个正整数,第 ii 个正整数表示 a_ia
i
,保证输入的 a_ia
i
单调递增。
输出格式
共 11 行,输出 11 个正整数表示花费的时间。
输入输出样例
输入 #1复制
10 5 0
输出 #1复制
2
输入 #2复制
31 4 2
8 13
输出 #2复制
6
说明/提示
子任务
对于 60%60% 的数据,k=0k=0。
对于 100%100% 的数据,1\leq m\leq n\leq 10001≤m≤n≤1000,k\leq 10k≤10。
题目来源
MtOI2019 Extra Round T1
出题人:disangan233
上代码:
#include
using namespace std;
int n,m,k,ans,x,a[1100];
int main()
{
cin>>n>>m>>k;
for(int i=1;i<=k;i++)
{
scanf("%d",&x);
a[x]=1;
}//读入,把哪些点m会加一标记出来
x=0;//从零开始
while(x<n)//还没有走到n
{
x+=m;//往前走
if(a[x])m++;//如果走到x时m应该加一,那么m++
ans++;//步数加一
}
cout<<ans;//输出步数
return 0;
}