Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
111306 | CBCode | 递增子序列 | C++ | 解答错误 | 50 | 0 MS | 248 KB | 867 | 2023-11-19 18:13:01 |
#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; }