CodeForces - 767A

这个题其实仔细想想就会发现并不难做,只要把每个出现过的数据标记一下就可以了。

用结构体和两个数组都比较好处理。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 struct S//方便标记
 7 {
 8     int a;
 9     int id;
10 }s[100010];
11 
12 int main()
13 {
14     int n;
15     while(scanf("%d",&n)!=EOF)
16     {
17         for(int i=1;i<=n;i++)//手动清零
18             s[i].id=0;
19         int x=n;
20         for(int i=1;i<=n;i++)
21         {
22             cin>>s[i].a;
23             s[s[i].a].id=1;//标记
24             int j;
25             for(j=x;s[j].id==1;j--)//从大到小输出没被标记的
26                 cout<<j<<" ";
27             x=j;
28             cout<<endl;
29         }
30     }
31     return 0;
32 }

 

posted on 2017-04-08 22:05  寒衫浮梦丶  阅读(185)  评论(0)    收藏  举报

导航