Вы находитесь на странице: 1из 1

 #include <bits/stdc++.

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;
 }

Вам также может понравиться