提交时间:2023-11-19 18:00:40

运行 ID: 111304

#include <bits/stdc++.h> using namespace std; #define all(v) (v).begin(), (v).end() typedef long long ll; vector<int> a,path; multiset<vector<int>> ans; int n; void dfs(int i) { if(!path.empty() && a[i] >= path.back()) { path.push_back(a[i]); ans.insert(path); path.pop_back(); } if(i < n-1) { path.push_back(a[i]); for(int j = i+1; j < n; j++) { dfs(j); } path.pop_back(); } } int main() { cin >> n; a.resize(n); for(int i = 0; i < n; i++) { cin >> a[i]; } for(int i = 0; i < n; i++) { dfs(i); } for(auto& v : ans) { for(int i = 0; i < v.size(); i++) { cout << v[i] << ' '; } cout << '\n'; } return 0; }