提交时间:2026-02-05 15:28:47
运行 ID: 84003
#include <iostream> #include <vector> using namespace std; int k; int count = 0; void dfs(vector<int>& seq) { if (seq.size() >= 2) { count++; } for (int num = 1; num <= k; ++num) { if (!seq.empty() && num == seq.back()) continue; if (seq.size() >= 2) { int prev_prev = seq[seq.size() - 2]; int prev = seq.back(); if (prev > prev_prev && num >= prev_prev) continue; if (prev < prev_prev && num <= prev_prev) continue; } seq.push_back(num); dfs(seq); seq.pop_back(); } } int main() { cin >> k; vector<int> seq; dfs(seq); cout << count << endl; return 0; }