#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define int long long
vector<ll> memory(6 + 1, -1); // Not Calculated Yet
bool f(ll target, ll coins[], ll n)
{
if (target == 0)
return true;
else if (target < 0)
return false;
else if (memory[target] != -1)
return memory[target];
else {
bool isThisValid = false;
for (int i = 0; i < n; i++)
if (f(target - coins[i], coins, n))
isThisValid = true;
memory[target] = isThisValid;
return memory[target];
}
}
void Solve()
{
ll target = 1; // 2+2+2=6 //3+3=6
ll coins[] = { 2, 3 };
ll n = 2; // total coins
cout << f(target, coins, n) << '\n';
}
int32_t main()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int t = 1;
// cin >> t;
for (int i = 1; i <= t; i++) {
Solve();
}
return 0;
}
// Coded by Tahsin Arafat (@TahsinArafat)
// Coded for CPS Academy
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0IikKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwojZGVmaW5lIGludCBsb25nIGxvbmcKCnZlY3RvcjxsbD4gbWVtb3J5KDYgKyAxLCAtMSk7IC8vIE5vdCBDYWxjdWxhdGVkIFlldAoKYm9vbCBmKGxsIHRhcmdldCwgbGwgY29pbnNbXSwgbGwgbikKewogICAgaWYgKHRhcmdldCA9PSAwKQogICAgICAgIHJldHVybiB0cnVlOwogICAgZWxzZSBpZiAodGFyZ2V0IDwgMCkKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICBlbHNlIGlmIChtZW1vcnlbdGFyZ2V0XSAhPSAtMSkKICAgICAgICByZXR1cm4gbWVtb3J5W3RhcmdldF07CiAgICBlbHNlIHsKICAgICAgICBib29sIGlzVGhpc1ZhbGlkID0gZmFsc2U7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgICAgIGlmIChmKHRhcmdldCAtIGNvaW5zW2ldLCBjb2lucywgbikpCiAgICAgICAgICAgICAgICBpc1RoaXNWYWxpZCA9IHRydWU7CiAgICAgICAgbWVtb3J5W3RhcmdldF0gPSBpc1RoaXNWYWxpZDsKICAgICAgICByZXR1cm4gbWVtb3J5W3RhcmdldF07CiAgICB9Cn0KCnZvaWQgU29sdmUoKQp7CiAgICBsbCB0YXJnZXQgPSAxOyAvLyAyKzIrMj02IC8vMyszPTYKICAgIGxsIGNvaW5zW10gPSB7IDIsIDMgfTsKICAgIGxsIG4gPSAyOyAvLyB0b3RhbCBjb2lucwogICAgY291dCA8PCBmKHRhcmdldCwgY29pbnMsIG4pIDw8ICdcbic7Cn0KCmludDMyX3QgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCksIGNpbi50aWUoMCksIGNvdXQudGllKDApOwogICAgaW50IHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSB0OyBpKyspIHsKICAgICAgICBTb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0KLy8gQ29kZWQgYnkgVGFoc2luIEFyYWZhdCAoQFRhaHNpbkFyYWZhdCkKLy8gQ29kZWQgZm9yIENQUyBBY2FkZW15