Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
111129 | 蔡哲恒 | 递增子序列 | C++ | 输出格式错误 | 50 | 0 MS | 312 KB | 888 | 2023-11-18 10:42:51 |
#include<bits/stdc++.h> using namespace std; int n,a[1005],out[1005],now=0,check[5005][1005],now2=0; bool visited[1005],f; bool checkq() { bool t=0; for(int i=1;i<=now2;i++) { for(int j=0;j<=now;j++) { if(a[out[j]]!=check[i][j]) { t=1; } } if(t==0) { return true; } t=0; } return false; } void search(int x) { if((now>=2)&&(checkq()==false)) { if(f==0) { f=1; } else { printf("\n"); } now2++; for(int i=0;i<now;i++) { check[now2][i]=a[out[i]]; printf("%d ",a[out[i]]); } } for(int i=x+1;i<=n;i++) { if((a[i]>=a[x])&&(visited[i]!=true)) { out[now++]=i; visited[i]=true; search(i); visited[i]=false; now--; } } } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } a[0]=-10005; search(0); return 0; }