// Problem: No.1681 +-* 第 1681 号+-* // Contest: yukicoder // URL: https://yukicoder.me/problems/no/1681 // Memory Limit: 512 MB // Time Limit: 2000 ms // Created by Herio #include using namespace std; using ll = long long; const int N = 2e5 + 5; const int inf = 0x3f3f3f3f, mod = 1e9 + 7; #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define PII pair #define pb emplace_back #define IOS ios::sync_with_stdio(false),cin.tie(nullptr) #define mst(a,b) memset(a,b,sizeof a) template //x=max(x,y) x=min(x,y) void cmx(T &x,T y){ if(x void cmn(T &x,T y){ if(x>y) x=y; } #define sz(a) (int)a.size() #define fi first #define se second ll a[N],p[N]; int main(){ int n;cin>>n; rep(i,1,n) cin>>a[i]; p[0]=1; for(int i=1;i<=n;i++) p[i]=p[i-1]*3%mod; ll x = 1; ll ans = 0; for(int i=1;i<=n;i++){ x=x*a[i]%mod; ll w = (i==n)?1:2; ll t = (i==n)?1:p[n-1-i]; ll s = x*w*t%mod; ans=(ans+s)%mod; } cout<