提交时间:2023-11-19 18:13:01
运行 ID: 111306
#include <bits/stdc++.h> using namespace std; #define all(v) (v).begin(), (v).end() typedef long long ll; vector<int> a,path; set<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 it = ans.rbegin(); it != ans.rend(); it++) { for(int i = 0; i < (*it).size(); i++) { cout << (*it)[i] << ' '; } cout << '\n'; } return 0; }