为什么会CE
  • 板块灌水区
  • 楼主mmdxmakioi
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/1/15 11:32
  • 上次更新2023/10/24 04:10:02
查看原帖
为什么会CE
930076
mmdxmakioi楼主2023/1/15 11:32

报错代码:g++: 编译器内部错误:File size limit exceeded signal terminated program as 请提交一份完整的错误报告, 如有可能请附上经预处理后的源文件。 参阅 https://gcc.gnu.org/bugs/ 以获取指示。

#include<cstdio>
#define int long long
int fast_pow(int a,int b,int MOD)
{
	int rt = 1;
	while(b!=0)
	{
		if(b%2==1)
		{
			rt*=a;
			rt%=MOD;
		}
		a*=a;
		a%=MOD;
		b/=2;
	}
	return rt;
}
int inv(int x,int MOD)
{
	return fast_pow(x,MOD-2,MOD);
}
int qzj[5000001] = {1};
int hzj[5000001] = {1};
int n,p,k;
int a[5000001];
signed main()
{
	scanf("%lld%lld%lld",&n,&p,&k);
	int i,j;
	for(i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
	}
	qzj[1] = a[1];
	hzj[n] = a[n];
	hzj[n+1]=1;
	qzj[0] = 1;
	int s = 1;
	for(i=2;i<=n;i++)
	{
		qzj[i] = a[i]*qzj[i-1];
		qzj[i]%=p;
		j = n-i+1;
		hzj[j] = hzj[j+1]*a[j];
		hzj[j]%=p;
	}
	int zc = k;
	int ans = 0;
	for(i=1;i<=n;i++)
	{
		s*=a[i];
		s%=p;
		ans += (k*((qzj[i-1]*hzj[i+1])%p))%p;
		ans%=p;
		k *= zc;
		k %= p;
	}
	printf("%lld",(ans*inv(s,p))%p);
}
2023/1/15 11:32
加载中...