运城网站建设设计价格,旅游网站制作文献,订制企业网站,谷歌网站推广方案全国 2013 NOIP 提高组试题
题目描述 Description
n个小伙伴#xff08;编号从0到n-1#xff09;围坐一圈玩游戏。按照顺时针方向给n个位置编号#xff0c;从0到n-1。最初#xff0c;从0号小伙伴在第0号位置#xff0c;第1号小伙伴在第1号位置#xff0c;…#xff0c…全国 2013 NOIP 提高组试题
题目描述 Description
n个小伙伴编号从0到n-1围坐一圈玩游戏。按照顺时针方向给n个位置编号从0到n-1。最初从0号小伙伴在第0号位置第1号小伙伴在第1号位置…以此类推。 游戏规则如下:每一轮第0号位置上的小伙伴顺时针走到第m号位置第1号位置小伙伴做到第m1号位置…依次类推第n-m号位置上的小伙伴走到底0号位置第n-m1号位置上的小伙伴走到第1号位置…第n-1号位置上的小伙伴顺时针走到第m-1号位置。 现在一共进行了10^k轮请问x号小伙伴最后走到了第几号位置。
输入描述 Input Description
输入文件名为 circle.in 输入共1行包括4个整数 n,m,k,x 每两个整数之间用一个空格隔开。
输出描述 Output Description
输出文件名 circle.out 输出共1行包含1个整数表示10^k轮后x号小伙伴所在的位置编号
样例输入 Sample Input
10 3 4 5
样例输出 Sample Output
5
数据范围及提示 Data Size Hint
【数据说明】 对于30%的数据0k7; 对于80%的数据0k10000000; 对于100%的数据0n1000000,0mn,0xn,0k1000000000;
代码
#includeiostream
using namespace std;
long long n,m,k,x,s1;
long long f(long long a,long long b,long long mod){long long ans1;while(b){if(b%21){ans((ans%mod)*(a%mod))%mod;}a((a%mod)*(a%mod))%mod;bb/2;}return ans;
}
int main() {cinnmkx;cout(xm*f(10,k,n))%n;return 0;
}