题目描述
LakerV最近沉迷于微信的跳一跳无法自拔。为了戒掉自己的网瘾,他决定去做算法题了。刚好,他看到一个题目叫“跳一跳”的算法题,决定点开去做。
题目的描述是这样的,有n块瓷砖铺成的直线道路上,你一开始站在第一块瓷砖上,每一块瓷砖都有一个ai权值表示当你到达这块瓷砖后,你的下一步最远能到达i+ai这个瓷砖。现在问你最大能到达第几块瓷砖
LakerV认为这道题特别简单,于是扔给你来做,自己去做别的了。
输入描述:输入两行
第一行是一个正整数n表示瓷砖的个数
第二行是n个正整数ai表示第i块瓷砖的权值(权值有可能为负数)
(保证所有数据范围在long long之内)
输出描述:输出一行正整数表示你最大能到达第几块瓷砖
请注意:不能跳出瓷砖数量的范围
示例1
输入5 1 1 1 1 0输出
5
示例2
输入5 1 1 -1 0 0输出
3
题目详解:
#include
using namespace std;
int main()
{
int n,i;
cin>>n;
long long start=1,q;
for(i=1;i<=n;i++)
{
cin>>q;
if(i>start)
break;
if(i<=n)
start=max(start,i+q);
}
if(start>=n)
cout<
cout<
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)