#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; const ll MOD=1e9+7; int main() { int n; cin>>n; ll a[200020]; ll tot=1; for(int i=0; i>a[i]; tot=min(MOD, tot*a[i]); } if(tot==MOD){ ll ans=1; for(int i=0; i; deque deq; ll dp[200020]; dp[0]=0; deq.push_back({1, 0}); for(int i=0; i1){ ll a1=deq[0].first, b1=deq[0].second; ll a2=deq[1].first, b2=deq[1].second; if(x/a1+b1>x/a2+b2) break; deq.pop_front(); } dp[i+1]=x/deq[0].first+deq[0].second; ll a0=p[i+1], b0=dp[i+1]; while(deq.size()>1){ ll a1=deq[0].first, b1=deq[0].second; ll a2=deq[1].first, b2=deq[1].second; if((b1-b2)*a2*(a0-a1)>(b0-b1)*a0*(a1-a2)) break; deq.pop_front(); } deq.push_front({a0, b0}); } cout<