/*
11267:
榕榕的旅游计划
时间限制: 1 Sec 内存限制: 128 MB
提交: 83 解决: 10
[提交] [状态] [命题人:admin]
题目描述
2999年暑假来了,榕榕在期末考试中,语文考了99.5分,数学考了100分。榕榕的妈妈很开心,决定送榕榕参加最新一期的X星系旅行。
X星系有n个星球,它们正好围城了一个圈,按顺时针顺序依次编号为0,1,2,3,n-1,任意两个相邻的星球之间的距离为1。榕榕初始在编号为now星球上。
根据旅行计划,榕榕将进行p轮旅行,第i轮沿当前旅行方向到离他当前位置距离ai的星球旅行。但是榕榕会改变旅行的方向,他将每k轮后变更一下旅行的方向。如他将在第1到k轮沿顺时针方向旅行,在第k+1到2?k轮沿逆时针方向旅行,在第2?k+1到第3?k轮再沿顺时针方向旅行…依次递推,直到他完成了p轮旅行。(榕榕第一轮一定沿顺时针旅行)
榕榕想知道,照此计划,他在p轮旅行后所在星球的编号。
输入
第一行四个由空格隔开的整数,依次表示n,p,k,now,意义见题面描述.
接下来一行为p个由空格隔开的数字,第i个数字代表ai,意义见题面描述。
输出
一个整数,表示榕榕p轮后所在星球的编号。
样例输入
复制样例数据
1000 3 2 10
1 3 2
样例输出
12
提示
榕榕初始在第10号星球,共需进行3轮旅行,每两轮变换一次方向。
第一轮,榕榕沿顺时针到距离10号星球为1的星球,到达11号星球。
第二轮,榕榕沿顺时针到距离11号星球为3的星球,到达14号星球。
第三轮,榕榕变换方向,沿逆时针到距离14号星球为2的星球,到达12号星球。
因此榕榕最后的位置在第12号星球。
对于100%的测试数据,n,p,k,now以及所有的ai均为大等于零且小于10000的整数。
*/
#include <iostream>
using namespace std;
int main()
{
int n,p,k,now;
cin>>n>>p>>k>>now;
int a[p];
for(int i=0; i<p; i++)
{
cin>>a[i];
}
int dir = 1;
for(int round=1; round<=p; round++)
{
if((round-1)/k%2==0)
{
dir = 1;
}
else
{
dir = -1;
}
now += a[round-1]*dir;
}
cout<<now%n;
}