记录编号 99899 评测结果 AAAAAAAAAA
题目名称 [Ural 1309] 辩论 最终得分 100
用户昵称 Gravatarcstdio 是否通过 通过
代码语言 C++ 运行时间 0.006 s
提交时间 2014-05-01 21:20:21 内存使用 0.46 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define sqr(x) (x)*(x)
const int P=9973;
int N,ans=0,A[P+1]={0},B[P+1]={0},U[P+1]={0},V[P+1]={0};
int main(){
	freopen("Dispute.in","r",stdin);
	freopen("Dispute.out","w",stdout);
	scanf("%d",&N);
	for(int i=1;i<=P;i++){
		int t1=sqr(i)%P;
		int t2=((sqr(t1)%P)*i)%P;
		U[i]=(t2+7-i+P)%P;
		V[i]=((t1*i)%P-t2+3*i+P)%P;
	}
	A[0]=1;
	for(int i=1;i<=P;i++){
		A[i]=(A[i-1]*U[i])%P;
		B[i]=(B[i-1]*U[i]+V[i])%P;
	}
	for(int i=N/P;i>=1;i--){
		ans=(ans*A[P]+B[P])%P;
	}
	ans=(ans*A[N%P]+B[N%P])%P;
	printf("%d\n",ans);
	return 0;
}