| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 38333 | hi_hi | 【S】T3 | C++ | 解答错误 | 0 | 402 MS | 1832 KB | 1014 | 2025-10-03 14:04:39 |
#include<bits/stdc++.h> using namespace std; long long n,a[2000005],ans=1; long long md=1e9+7; inline long long qw(long long d,long long z,long long md){ if(z==0)return 1; if(z%2==1){ long long _=qw(d,z/2,md); _%=(md-1); _=_*_; _%=(md-1); _=_*d; _%=(md-1); return _; } else{ long long _=qw(d,z/2,md); _%=(md-1); _=_*_; _%=(md-1); return _; } } int main(){ scanf("%lld",&n); for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); } sort(a+1,a+n+1); for(int i=1;i<=n;i++){ long long __=qw(2,n-i,md-1); long long _=qw(a[i],__,md); _=_%md; ans=ans*(long long)(_); ans%=md; } for(int i=1;i<=n;i++){ long long __=qw(2,i-1,md-1); __%=md; long long _=qw(a[i],__,md); _=_%md; ans*=(long long)(_); ans%=md; } printf("%lld",ans); }