我是靠谱客的博主 洁净鱼,这篇文章主要介绍51nod2160 数字游戏【栈】输入输出输入样例输出样例,现在分享给大家,希望可以做个参考。

现在有n个数字依次进入一个栈,每个数字a进入栈的时候,如果栈顶元素小于a,则会将栈顶元素弹出,新的栈顶元素如果仍然小于a,则会将新的栈顶元素继续弹出,直到栈顶元素大于等于a为止,a才会加入栈。问n个数字依次进入后,最后栈里的数字依次是?

 收起

输入

输入第一行一个整数n(n<=100000),表示有n个数字依次进入栈。
接下来n行,每行一个整数,表示第i个数字。

输出

若干行,表示最后栈中的数字。

输入样例

5
5
3
2 
4
1

输出样例

5
4
1

思路:就是STL的简单应用吧,之前有一篇关于stack的详细介绍打开链接

#include<cstdio>
#include<stack>
#include<vector>
#include <iostream>
using namespace std;
const int N = 100005;
int arr[N];
int main()
{
    stack<int > s;
    int n;
    scanf("%d", &n);
    while(n--)
    {
        int a;
        scanf("%d", &a);
        while(!s.empty() && s.top() < a)
        {
            s.pop();
        }
        s.push(a);
    }
    int i = 0;
    while(!s.empty())
    {
        arr[i++] = s.top();
        s.pop();
    }
    for(i = i - 1; i >= 0; --i)
        printf("%dn", arr[i]);
    return 0;
}

 

最后

以上就是洁净鱼最近收集整理的关于51nod2160 数字游戏【栈】输入输出输入样例输出样例的全部内容,更多相关51nod2160内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(122)

评论列表共有 0 条评论

立即
投稿
返回
顶部