由于某些原因菲莉丝拿到了贤者之石,所以好像变得很厉害了
好像变得很厉害的菲莉丝想要炼成幻想乡,其中有一个原料是稗田一族对幻想乡历史的记录。现在菲莉丝拿到了一个被某只魔粘性精神体加密过的的卷轴。
密文通过原文和一个正整数key加密形成,而key和密文又有一定关联。
现给出密文,求key值
已知密文s和key值关系如下
已知密文s是一串正整数s1,s2,s3……sn,A为s中所有元素的和,B为s中所有元素的积,key为B mod A
数据范围
si,A在(0,1e17]范围内
0<n<=100000
第一行T表示数据组数
接下来每组第一行一个n,代表s的长度
接下来n行,每行一个正整数si
1 #include<bits/stdc++.h>
2 using namespace std;
3 int t;
4 unsigned long long Mod(unsigned long long x,unsigned long long a,unsigned long long mod){
5 unsigned long long ans=0;
6 ans%=mod;
7 while(a){
8 if(a&1){
9 ans=(ans+x)%mod;
10 }
11 ans%=mod;
12 a>>=1;
13 x=(x<<1)%mod;
14 }
15 return ans;
16 }
17 unsigned long long a[123456];
18 int main(){
19 scanf("%d",&t);
20 while(t--){
21 unsigned long long sum=0;
22 int n;
23 scanf("%d",&n);
24 for(int i=1;i<=n;i++){
25 scanf("%llud",&a[i]);
26 sum+=a[i];
27 }
28 unsigned long long ans=1;
29 for(int i=1;i<=n;i++){
30 ans=Mod(ans,a[i],sum);
31 ans%=sum;
32 }
33 cout<<ans<<endl;
34 }
35 return 0;
36 }