一轮之后x的位置为(x+m)%n, 10k 轮之后x的位置为 (x+m∗10k) %n,用快速幂算一下 10k %n即可。
#include<cstdio>
#define ll long long
ll n,m,k,a=10,x,ans=1;
int main(){
scanf("%lld%lld%lld%lld",&n,&m,&k,&x);
while(k){
if(k&1) ans=ans*a%n;
a=a*a%n;
k>>=1;
}
ans%=n;
ans=(x+ans*m)%n;
printf("%lld",ans);
return 0;
}