n=int(input())
l=list(map(int,input().split()))
s=0
k=1
if 1 not in l: print(0)
else:
for i in range(l.index(1),len(l)):
if l[i]==0:
s+=1
else:
k*=s+1
s=0
print(k)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define lld long double
#define for0(i,n) for(int i=0; i<n; i++)
#define for1(i,n) for(int i=1; i<=n; i++)
#define loop(i,a,b) for(int i=a; i<b; i++)
#define bloop(i,a,b) for(int i=a; i>=b; i--)
#define tc(t) int t; cin>>t; while(t--)
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define vi vector<int>
#define vll vector<ll>
#define pi pair<int,int>
#define vpi vector<pi>
#define all(a) a.begin(),a.end()
#define rall(a) a.end(),a.begin()
#define py cout<<"YES\n";
#define pn cout<<"NO\n";
#define PI 3.141592653589793238
#define mod (int) 1000000007
#define infinity (int) (1e18)
bool isPerfectSquare(long double x)
{
// Find floating point value of
// square root of x.
if (x >= 0) {
long long sr = sqrt(x);
// if product of square root
//is equal, then
// return T/F
return (sr * sr == x);
}
// else return false if n<0
return false;
}
bool prime (long long int n) {
bool prime = 1;
if (n == 1) {
return 0;
}
else {
for (long long int i = 2; i <= n/2 ; i++) {
if (n % i == 0) {
prime = 0;
break ;
}
}
return prime;
}
}
// precompute number is prime or not using seive
// const int k=1e7;
// vector<bool> v(k,1);
// // paste it inside main fun|
// v[0]=v[1]=false; <-from here
// for(int i=2;i<k;i++){
// if(v[i]==true)
// for(int j=2*i; j<k; j=j+i){
// if(v[j]==true)
// v[j]=false;
// }
// }
int main(){
int n;
cin>>n;
ll ans;
vi arr(n);
int zer=1;
for0(i,n){
cin>>arr[i];
if(arr[i]==1)
zer=0;
}
if(zer==1){
ans=0;
}
else{
int c=0;
ans=1;
int flag=0;
for0(i,n){
if(arr[i]==0 && flag==1){
c++;
}
else if(arr[i]==1){
flag=1;
ans*= (c+1);
c=0;
}
}
}
cout<<ans<<endl;
return 0;
}
1302. Deepest Leaves Sum | 1209. Remove All Adjacent Duplicates in String II |
994. Rotting Oranges | 983. Minimum Cost For Tickets |
973. K Closest Points to Origin | 969. Pancake Sorting |
967. Numbers With Same Consecutive Differences | 957. Prison Cells After N Days |
946. Validate Stack Sequences | 921. Minimum Add to Make Parentheses Valid |
881. Boats to Save People | 497. Random Point in Non-overlapping Rectangles |
528. Random Pick with Weight | 470. Implement Rand10() Using Rand7() |
866. Prime Palindrome | 1516A - Tit for Tat |
622. Design Circular Queue | 814. Binary Tree Pruning |
791. Custom Sort String | 787. Cheapest Flights Within K Stops |
779. K-th Symbol in Grammar | 701. Insert into a Binary Search Tree |
429. N-ary Tree Level Order Traversal | 739. Daily Temperatures |
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |