Advertisement
Patrickmeme

Array Description

Jun 14th, 2023
510
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int dp[100001][101];
  5. int v[100001];
  6.  
  7. #define MOD 1000000007
  8.  
  9. int main()
  10. {
  11.     int n,m,i,k,j,s;
  12.     cin>>n>>m;
  13.     for(i=1;i<=n;i++)
  14.         cin>>v[i];
  15.     if(v[1]==0){
  16.         for(k=1;k<=m;k++){
  17.             dp[1][k]=1;
  18.         }
  19.     }else{
  20.         dp[1][v[1]]=1;
  21.     }
  22.     for(i=2;i<=n;i++){
  23.         for(j=1;j<=m;j++){
  24.             if(v[i]==0 || v[i]==j){
  25.                 s=dp[i-1][j+1]+dp[i-1][j-1];
  26.                 if(s>=MOD)
  27.                     s-=MOD;
  28.                 s+=dp[i-1][j];
  29.                 if(s>=MOD)
  30.                     s-=MOD;
  31.                 dp[i][j]=s;
  32.             }
  33.         }
  34.     }
  35.     s=0;
  36.     for(i=1;i<=m;i++){
  37.         s+=1ll*dp[n][i];
  38.         if(s>=MOD)
  39.             s-=MOD;
  40.     }
  41.     cout<<s;
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement