明显一次操作会让一个小朋友向右位移 \(m\) 位,即变成 \((x+m)\bmod n\)。
所以 \(10^k\) 次操作之后就是 \((x+m\times 10^k)\bmod n\)
#include<bits/stdc++.h>
using namespace std;
#define int long long
int ksm(int a,int b,int mod){
if(b==1)return a;
int ans=ksm(a,b>>1,mod);
if(b&1){
return ans*ans%mod*a%mod;
}
else return ans*ans%mod;
}
signed main(){
int n,m,k,x;cin>>n>>m>>k>>x;
cout<<(x+(m*ksm(10,k,n))%n)%n;
return 0;
}