记录编号 426146 评测结果 AAAAAAAAAAA
题目名称 [NOIP 2013]转圈游戏 最终得分 100
用户昵称 GravatarJustWB 是否通过 通过
代码语言 C++ 运行时间 0.013 s
提交时间 2017-07-16 18:48:17 内存使用 0.29 MiB
显示代码纯文本
#include<cstdio>
#include<cctype>
using namespace std;
inline int get();
inline int pow();
int n,m,k,x;
int all;
int main()
{
	freopen("CircleNOIP2013.in","r",stdin);
	freopen("CircleNOIP2013.out","w",stdout);
	n=get();m=get();k=get();x=get();
	long long nn=x+m;
	while((nn%n)!=x)nn+=m;
	nn-=x;
	all=nn/m;
	int s=pow()%all;
	printf("%d",(x+s*m)%n);
	return 0;
}
inline int pow()
{
	int temp=10,res=1;
	while(k)
	{
		if(k%2)
		{
			res=(res*temp)%all;
			k--;
		}
		temp=(temp*temp)%all;
		k>>=1;
	}
	return res;
}
inline int get()
{
 	int t=0,jud=1;char c=getchar();
	while(!isdigit(c))
	{
 	 	if(c=='-')jud=-1;
		c=getchar();
	}
	while(isdigit(c))
	{
	 	t=(t<<3)+(t<<1)+c-'0';
		c=getchar();
	}
	return t*jud;
}