提交时间:2025-10-03 14:11:02

运行 ID: 38340

#include<bits/stdc++.h> using namespace std; int n,a[200005]; long long ans=1; long long ji[200005]; int dis[200005][20]; long long M=1e9+7; int dfs(int x,int a){ if(a==1){ return x; }if(!a) return 1; long long t=dfs(x,a/2); return t*t%M; } int main(){ ji[0]=1; for(int i=1;i<200005;i++){ ji[i]=ji[i-1]*2; ji[i]%=M; } cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); for(int i=1;i<=n;i++){ ans*=dfs(a[i],ji[i-1]); ans%=M; ans*=dfs(a[i],ji[n-i]); ans%=M; } cout<<ans<<endl; return 0; }