Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using ll = long long;
- using namespace std;
- int main() {
- ll k, p;
- cin >> k >> p;
- vector <vector <ll>> dp(k + 1, vector <ll> (3));
- if (k == 1) {
- cout << 0;
- return 0;
- }
- if (k == 2) {
- cout << 1;
- return 0;
- }
- dp[2][1] = 1;
- dp[2][2] = 0;
- dp[3][1] = 0;
- dp[3][2] = 1;
- for (ll i = 4; i <= k; ++i) {
- if (i % 2 == 0) dp[i][1] = (dp[i / 2][1] + dp[i / 2][2]) % p;
- else dp[i][1] = 0;
- dp[i][2] = (dp[i - 1][1] + dp[i - 1][2]) % p;
- }
- cout << (dp[k][1] + dp[k][2]) % p;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment