| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 38330 | 郭澍宇 | 【S】T3 | C++ | 解答错误 | 0 | 296 MS | 1816 KB | 667 | 2025-10-03 14:00:21 |
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n; ll a[200005]; ll mod=1e9+7; ll phim=mod-1; ll qpow(ll a,ll b,ll mod){ if(b== 1)return a%mod; if(b==0)return 1; if(b&1)return a*qpow(a*a%mod,b>>1,mod)%mod; return qpow(a*a%mod,b>>1,mod)%mod; } int main(){ scanf("%lld",&n); for(int i = 1;i<=n;i++) scanf("%lld",&a[i]); sort(a+1,a+n+1); ll ans =1; for(int i = 1;i<=n;i++){ ll k = qpow(2,i,phim); ans *= qpow(a[i],k,mod); ans%=mod; } for(int i = 1;i<=n;i++){ ll k = qpow(2,n-i,phim); ans *= qpow(a[i],k,mod); ans%=mod; } }