提交时间:2025-10-03 15:05:04
运行 ID: 38356
#include<bits/stdc++.h> using namespace std; int n,a[200005]; long long ans=1; long long ji[200005]; long long M=1e9+7; long long mi(int x,int a){ if(a==0) return 1; long long t=mi(x,a/2)%M; if(a%2) return (t*t*x)%M; return (t*t)%M; } int main(){ cin>>n; ji[0]=1; for(int i=1;i<=n;i++){ ji[i]=ji[i-1]*2; ji[i]%=(M-1); } for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); for(int i=1;i<=n;i++){ ans=(ans*mi(a[i],ji[i-1]))%M; ans=(ans*mi(a[i],ji[n-i]))%M; } cout<<ans<<endl; return 0; }