我是靠谱客的博主 洁净鱼,最近开发中收集的这篇文章主要介绍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 数字游戏【栈】输入输出输入样例输出样例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部