IMohammedNasr

Untitled

Apr 26th, 2022 (edited)
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.57 KB | None | 0 0
  1. ll n, q;
  2. vector<ll> memo;
  3.  
  4. bool is_valid(ll i)
  5. {
  6.     return i >= 0 and i <= n and memo[i] != -3;
  7. }
  8.  
  9. ll rec(ll target, ll start)
  10. {
  11.     if (!is_valid(start))
  12.         return 0;
  13.     else if (memo[start] != -1)
  14.         return memo[start];
  15.     else if (start == n)
  16.         return 1;
  17.     else
  18.         return memo[start] = (rec(target, start + 1) % MOD + rec(target, start + 2) % MOD) % MOD;
  19. }
  20.  
  21. void solve()
  22. {
  23.     cin >> n >> q;
  24.     memo.resize(n + 2, -1);
  25.     while (q--)
  26.     {
  27.         ll x;
  28.         cin >> x;
  29.         memo[x] = -3;
  30.     }
  31.     cout << rec(n, 0);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment