第三届全国大学生算法设计与编程挑战赛---J题 大富翁

在这里插入图片描述

大富翁

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;
}

相似题目

Leetcode 55. 跳跃游戏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Your_Majesty!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值