Академический Документы
Профессиональный Документы
Культура Документы
h>
using namespace std;
typedef long long ll;
ll mod=1000000007;
ll a[100006];
ll g[100006];
ll h[100006];
ll ans[100006];
ll myPower[100006];
void pre()
{
myPower[0]=1;
for(int i=1;i<100006;i++)
myPower[i]=(myPower[i-1]*2)%mod;
}
ll calc(ll n){
ans[0]=g[0]=h[0]=a[0];
ll t1,t2;
for(ll i=1;i<n;i++)
{
h[i]=((h[i-1]*a[i])%mod + (myPower[i-1]*a[i])%mod)%mod;
ans[i]=(g[i-1]+h[i])%mod;
g[i]=(g[i-1]+ans[i])%mod;
}
return ans[n-1];
}
int main() {
ll t,n,i;
cin>>t;
pre();
while(t--)
{
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
cout<<calc(n)<<endl;
}
return 0;
}