转圈游戏

提交数: 109, 通过率: 55.96%, 平均分: 68.9

题目描述:

\(n\) 个小伙伴(编号从 \(0\) 到 \(n-1\))围坐一圈玩游戏。按照顺时针方向给 \(n\) 个位置编号,从 \(0\) 到 \(n-1\)。最初,第 \(0\) 号小伙伴在第 \(0\) 号位置,第 \(1\) 号小伙伴在第 \(1\) 号位置,……,依此类推。游戏规则如下:每一轮第 \(0\) 号位置上的小伙伴顺时针走到第 \(m\) 号位置,第 \(1\) 号位置小伙伴走到第 \(m+1\) 号位置,……,依此类推,第 \(n - m\) 号位置上的小伙伴走到第 \(0\) 号位置,第 \(n - m+1\) 号位置上的小伙伴走到第 \(1\) 号位置,……,第 \(n-1\) 号位置上的小伙伴顺时针走到第 \(m-1\) 号位置。

现在,一共进行了 \({10}^k\) 轮,请问 \(x\) 号小伙伴最后走到了第几号位置。

输入格式:

共一行,包含四个整数 \(n, m, k, x\),每两个整数之间用一个空格隔开。

输出格式:

一个整数,表示 \({10}^k\) 轮后 \(x\) 号小伙伴所在的位置编号。

数据范围:

对于 \(30\%\) 的数据,\(0 < k < 7\);

对于 \(80\%\) 的数据,\(0 < k < {10}^7\);

对于 \(100\%\) 的数据,\(1 < n < {10}^6\),\(0 < m < n\),\(0 \le x \le n\),\(0 < k < {10}^9\)。

样例输入:

10 3 4 5

样例输出:

5
时间限制: 1000ms
空间限制: 256MB

来源: NOIP2013提高t1