| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 38310 | 23级徐泽厚 | 【S】T3 | C++ | 通过 | 100 | 75 MS | 3396 KB | 798 | 2025-10-03 13:34:34 |
#include <bits/stdc++.h> #define int long long using namespace std; const int mod=1000000007; int n; int a[200005]; int p2[200005]; int ans=1; int ksm(int ds,int zs){ int sum=1; while (zs){ if (zs%2==1){ sum=sum*ds; sum%=mod; } ds=ds*ds%mod; zs=zs/2; } return sum; } signed main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); cin>>n; for (int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); p2[0]=1; for (int i=1;i<=n;i++){ p2[i]=p2[i-1]*2; p2[i]%=(mod-1); } for (int i=1;i<=n;i++){ int zs=(p2[i-1]+p2[n-i])%(mod-1); ans*=ksm(a[i],zs); ans%=mod; } cout<<ans<<"\n"; return 0; }