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

发布于:2023-01-09 ⋅ 阅读:(578) ⋅ 点赞:(0)

在这里插入图片描述

大富翁

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. 跳跃游戏


网站公告

今日签到

点亮在社区的每一天
去签到