站外题求解
  • 板块灌水区
  • 楼主bilibili_daogu
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/6 20:39
  • 上次更新2024/12/6 22:18:39
查看原帖
站外题求解
757292
bilibili_daogu楼主2024/12/6 20:39

我的代码:

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin >> n;

    vector<int> sizes(n);
    for (int i = 0; i < n; i++)
    {
        cin >> sizes[i];
    }

    stack<int> tower;
    for (int i = 0; i < n; i++)
    {
        if (tower.empty() || sizes[i] < tower.top())
        {
            tower.push(sizes[i]);
        }
        else
        {
            stack<int> temp;
            while (!tower.empty() && sizes[i] > tower.top())
            {
                temp.push(tower.top());
                tower.pop();
            }
            tower.push(sizes[i]);
            while (!temp.empty())
            {
                tower.push(temp.top());
                temp.pop();
            }
        }

        while (!tower.empty())
        {
            cout << tower.top() << " ";
            tower.pop();
        }
        cout << endl;
    }

    return 0;
}
2024/12/6 20:39
加载中...