题目链接:http://codeforces.com/contest/767/problem/A
题意:给你一座零食塔,每天会掉一个size为x(1~n)的零食,总共掉n天,然后居民会去捡,但是必需的从最大的开始捡,让你输出每天捡的零食的size,如果没有则输出空行
解析:看了挺久题意的,一开始想复杂了,后面发现,只需要那个vis处理一下,由于第一个捡的已经固定了,所以比较好处理
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <iostream>
#include <set>
#include <map>
#include <queue>
using namespace std;
const int maxn = 2e5+100;
int a[maxn];
int vis[maxn];
int main()
{
int n;
scanf("%d",&n);
int ans = n;
for(int i=0;i<n;i++)
{
int x;
scanf("%d",&x);
vis[x] = 1;
while(vis[ans])
{
printf("%d ",ans);
ans--;
}
puts("");
}
return 0;
}