Snacktower
这道题,做了一次还一直不会。
观察一下样例,会发现,他的数都是从大到小输出,用数组b[i]来判断大数出现了没,出现了就是可以输出了,所以每次就判断能不能输出就好了。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 100005;
int n, a[maxn], b[maxn];
int main()
{
int n;
cin>>n;
int tmp=n;
for(int i=0;i<n;i++)
{
cin>>a[i];
b[a[i]]=1;
while(b[tmp]==1)
{
cout<<tmp<<' ';
tmp--;
}
cout<<endl;
}
}