AcWing 129. 火车进栈
原题链接
简单
作者:
Value
,
2020-09-02 11:25:43
,
所有人可见
,
阅读 390
#include <iostream>
#include <stack>
#include <vector>>
using namespace std;
stack<int> stk;
vector<int> res;
int n, cnt = 20;
void dfs(int t){
if(!cnt) return ;
if(res.size() == n){
for(int i = 0; i < n; i ++ ) cout << res[i];
cout << endl;
cnt -- ;
return ;
}
if(!stk.empty()){
res.push_back(stk.top());
stk.pop();
dfs(t);
stk.push(res.back());
res.pop_back();
}
if(t <= n){
stk.push(t);
dfs(t + 1);
stk.pop();
}
}
int main(){
cin >> n;
dfs(1);
return 0;
}