Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
111736 阿道夫·传统美德 递增子序列 C++ 输出格式错误 50 0 MS 268 KB 708 2023-11-24 13:15:59

Tests(1/2):


#include<bits/stdc++.h> using namespace std; int n,a[10000]; stack<int>s; map<stack<int>,bool>mp; bool check(int t) { for(int i=t+1;i<=n;i++) if(a[i]>=a[t]) return false; return true; } void dfs(int t) { if(s.size()>=2&&!mp[s]) { stack<int>st=s; int *ans=new int[s.size()]; while(!st.empty()) { ans[st.size()]=st.top(); st.pop(); } for(int i=1;i<=s.size();i++) cout<<ans[i]<<(i==s.size()?'\n':' '); mp[s]=true; delete[] ans; } if(check(t)) return; for(int i=t+1;i<=n;i++) { if(a[i]>=a[t]) { s.push(a[i]); dfs(i); s.pop(); } } } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; dfs(0); cout<<endl; return 0; }


测评信息: