#include #include #include using lint = long long; void solve() { int n; std::cin >> n; std::set xs, ks; while (n--) { lint x; std::cin >> x; xs.insert(x); ks.insert(x); ks.insert(x + 1); } lint ans = 0; std::map dp; // sumがF_kになる選び方の総数 for (auto k : ks) { auto& pat = dp[k]; pat = 0; // F_k単体 if (xs.count(k)) ++pat; // F_{k-1}を使いF_{k-2}に帰着 if (xs.count(k - 1) && dp.count(k - 2)) pat += dp[k - 2]; ans += pat; } std::cout << ans << "\n"; } int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); solve(); return 0; }