Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const long long mod=1e9+7;
- int fact(int n)
- {
- int res = 1;
- for (int i = 2; i <= n; i++)
- res = res * i;
- return res;
- }
- int nCr(int n, int r)
- {
- return fact(n) / (fact(r) * fact(n - r));
- }
- int main()
- {
- int n;
- cin>>n;
- vector<int>v(n);
- for(int i=0;i<n;i++)
- {
- cin>>v[i];
- }
- int sum=0;
- int last=-1;
- for(int i=0;i<n;i++)
- {
- if(v[i]!=0)
- {
- last=v[i];
- }
- else if(v[i]==0)
- {
- int j=i;
- while(v[j]==0)
- {
- j++;
- }
- if(last!=-1)
- {
- sum+=nCr(v[j]-last+1,j-i)+v[j]-last+1;
- }
- else
- {
- sum+=nCr(v[j],j-i-1)+last;
- }
- i=j-1;
- }
- }
- sum%=mod;
- cout<<sum<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment