Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int dp[100001][101];
- int v[100001];
- #define MOD 1000000007
- int main()
- {
- int n,m,i,k,j,s;
- cin>>n>>m;
- for(i=1;i<=n;i++)
- cin>>v[i];
- if(v[1]==0){
- for(k=1;k<=m;k++){
- dp[1][k]=1;
- }
- }else{
- dp[1][v[1]]=1;
- }
- for(i=2;i<=n;i++){
- for(j=1;j<=m;j++){
- if(v[i]==0 || v[i]==j){
- s=dp[i-1][j+1]+dp[i-1][j-1];
- if(s>=MOD)
- s-=MOD;
- s+=dp[i-1][j];
- if(s>=MOD)
- s-=MOD;
- dp[i][j]=s;
- }
- }
- }
- s=0;
- for(i=1;i<=m;i++){
- s+=1ll*dp[n][i];
- if(s>=MOD)
- s-=MOD;
- }
- cout<<s;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement