旅游计划

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

发布了20 篇原创文章 · 获赞 1 · 访问量 1634

猜你喜欢

转载自blog.csdn.net/qq_40839193/article/details/88872015