AT_bcu30_a.すごろく

入门

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在 Cybozu 员工之间,双六游戏流行起来了。

员工们玩的这款双六有 N+1N+1 个格子,每个格子按照前进的顺序依次编号为 0,1,…,N0, 1, \ldots, N。起点的编号为 00,终点的编号为 NN。

为了熟悉这款双六,你正在一个人练习移动棋子。在实际移动棋子之前,你先决定了 KK 回合每回合前进的格数 ai (1≤i≤K)a_i\ (1\leq i\leq K),并将棋子放在了起点。
你将按照如下规则实际移动棋子:

第 ii 回合 (1≤i≤K)(1\leq i\leq K) 的操作:

  • 如果向前移动 aia_i 格后仍未到达终点,则前进 aia_i 格。
  • 如果恰好前进 aia_i 格能到达终点,则前进 aia_i 格到达终点,并立即结束游戏,不继续后续回合。
  • 如果前进少于 aia_i 格即可到达终点,则先正好前进达到终点,然后后退 ai−xa_i - x 格(其中 xx 为距离终点的剩余格数)。

给定 NN、KK 以及每回合前进的格数 aia_i,请输出最终(在 KK 回合全部结束,或中途到达终点且结束游戏后)棋子所在的格子编号。

输入格式

输入格式如下:

N K a1 a2 … aKN\ K\ a_1\ a_2\ \ldots\ a_K

输出格式

请输出棋子最后停留的格子编号。

输入输出样例

  • 输入#1

    10 4
    5 7 2 5

    输出#1

    10
  • 输入#2

    10 4
    5 7 3 5

    输出#2

    6
  • 输入#3

    20 7
    12 5 5 15 2 10 20

    输出#3

    1

说明/提示

数据范围

  • 1≤N≤1091\leq N\leq 10^9
  • 1≤K≤10001\leq K\leq 1000
  • 1≤ai≤N1\leq a_i\leq N (1≤i≤K)(1\leq i\leq K)

样例解释 1

一开始棋子放在 00。

  • 第 11 回合出 55,棋子移动到 55。
  • 第 22 回合出 77,棋子移动到 1010,因为还有 22 格可以行动,所以再退回到 88。
  • 第 33 回合出 22,棋子移动到 1010,此时刚好到达终点,移动结束。

最终棋子停在 1010。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页