大富翁
Description
题目背景
xxx是一个社恐的小朋友,但是上了大学以后,他总是被他的好基友们拉着去参加各种各样的聚会,这里面他唯一舒服一点的就是跟自己熟悉的好朋友一起玩桌游了。这学期他才学会怎么打UNO,然后第一次接触到了谁是大老板跟好基友们各种吵架背刺。这天他们突然想回味童年,开始试一试玩大富翁,而这一套大富翁有一个奇怪的机会卡,xxx觉得这张卡是一个翻盘的关键,现在他拜托你来好好研究这张机会卡如何使用。
题目描述
机会卡描述如下:你会来到一个给定的街道,街道上一共有无限个店家相连,因此可以把街道看作是一个一维的数列,街道的前n个店有一个数值aia_iai,表示你可以选择走到后面的0−ai0-a_i0−ai个店,比如你当前在1号店,店的数值为3,则你选择可以走到1,2,3,4号店,越到后面的店的奖励越好,所以你想知道这样最远能走到哪一家店。
Input
第一行一个整数nnn,表示有n家店(1≤n≤100000)(1 \leq n \leq 100000)(1≤n≤100000)第二行n个整数,表示每个店的数值aia_iai(0≤ai≤100000)(0 \leq a_i \leq 100000)(0≤ai≤100000)
Output
一个整数x,表示能走到的最远的店
Sample Input 1
5
1 1 1 1 1
Sample Output 1
6
代码
#include<bitsdc++.h>
using namespace std;
int main() {
int nums[100001];
int size;
scanf("%d", &size);
for(int i = 0; i < size; i++) {
scanf("%d", &nums[i]);
}
int index = 0, ans = 0;
for(int i = 0; i < size; i++) {
if(i <= ans) {
ans = max(ans, i + nums[i]);
index = i;
}
}
printf("%d\n", ans + 1);
return 0;
}