当前位置:首页 > C++目录 > 正文内容

【题解】小X玩游戏

亿万年的星光4年前 (2022-02-19)C++目录3005

【题目描述】

小X喜欢玩游戏。 
 这天,小X觉得传统的游戏都玩腻了,自己随手在草稿纸上画了一行N个格子作为棋盘, 制定了如下规则:格子从左到右依次编号为1到N,玩家初始位于格子1,初始前进方向为向右,游戏共进行M轮,第i轮玩家前进Ai格,若玩家到达格子N则改变前进方向为向左,若玩家到达格子1则改变前进方向为向右。 
小X想知道玩家最后会停在哪个格子,但这个游戏太漫长了,他已经玩得快睡着了,希望你帮帮他。

【输入描述】

第一行包含用一个空格隔开的两个整数N,M。 
接下来M行,第i行包含一个整数Ai。

【输出描述】

第一行包含一个整数,表示玩家最后停留的格子编号。

【样例输入】

3 2
2
3

【样例输出】

2

【提示】

样例说明
   玩家的路线为 1->2->3->2->1->2。

【数据范围】

  对于30%的数据,N=2,M≤10,Ai=1。
   对于60%的数据,N≤1000,M≤1000,Ai≤1000。
   对于 100%的数据,2≤N≤100000,1≤M≤100000,1≤Ai≤1000000000。

【题目分析】



#include <bits/stdc++.h>
using namespace std;

int main(){
	long long n,m,s,i,x,r;
	cin>>n>>m;
	s = 0;
	
	//m次移动
	for(i = 1;i <= m;i++){
		cin>>x;
		s = s + x; 
	}
	
	//去掉完整的若干来回,实际还需要走几个格子
	s = s % ((n - 1) * 2); 
	//如果是向右能走完
	if(s <= n - 1){
		r = 1 + s;
	} else{
		r = n - s % (n - 1);
	}
	cout<<r<<endl;
	
	return 0;
}



扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

【数据结构】栈—括号匹配检验

【数据结构】栈—括号匹配检验

【题目描述】假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[  (  [  ] [  ] ) ] 等为正确的匹配,[&nbs...

如何使用code::blocks编写C++代码

如何使用code::blocks编写C++代码

在前面的文章中,已经简单介绍了如何下载code::blocks了,这篇文章介绍一下如何使用code::blocks编写一个C++代码我们打开code::blocks软件,点击”New File“然后点...

2023 CSP 山东地区分数线汇总

地区CSP-XCSP-JCSP-S烟台556648.5临沂516416青岛476753淄博446547.5...

【C++图形化编程】鼠标函数及鼠标画板

【C++图形化编程】鼠标函数及鼠标画板

0.前言这篇文章简单介绍一下利用鼠标画图的程序#include<graphics.h> #include<conio.h> int main(){ initg...

【数据结构】优先队列(1)

优先队列(Priority Queue)是一种特殊的队列,它 不遵循“先进先出”(FIFO) 的原则,而是 按照优先级(Priority) 来出队。优先级高的元素 先出队,优先级低的元素 后出队。1....

【算法】分治算法

前言所谓分治算法就是指分而治之,即将较大规模的问题分解成几个较小规模的问题,通过对较小问题的求解达到对整个问题的求解。当我们将问题分解成两个较小问题求解时的分治方法称为二分法。比如,我们玩过最简单的猜...