【stack】HRBUST 1577 Prince and little Princess-1

本文通过一个温馨的故事介绍了一个简单的编程问题,使用栈来模拟公主处理王子送来的苹果的过程,包括添加、查看、移除等操作,并给出了完整的AC代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Prince and little Princess-1

Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 174(103 users) Total Accepted: 108(93 users) Rating: Special Judge: No

Description

Long long ago, 在一个古老的城堡里,有一个可爱的小公主。
有一天,她偷偷跑出城堡玩了。突然下起了大雨,小公主急忙找一个地方躲起来了。但是天慢慢变黑,而雨依然没有停止的趋势,小公主又累又饿。这时候,远方出现了吵闹声,慢慢地吵闹声靠近了小公主。一个声音在饥寒交迫的小公主头顶响起:“你还好麽?”
小公主抬头,看到一个王子骑着白马。
她低声哭泣着说:雨一直没停,我回不了家了。T^T..
王子给了小公主一袋苹果,说,你应该饿了吧。先吃着这个吧,我带你回去你的城堡。
后来,王子走了,然而小公主对王子念念不舍。每当小公主想王子了,就会给看一看那个装着苹果的口袋。

Input

有多组输入样例;

第一行一个正整数N(N <= 50),表示有王子给了小公主N个苹果。每天小公主都会想王子好几次~
然后有n个数,表示n个苹果从袋底到袋顶的重量。
接下来每行有几条命令,保证不会有不合法的命令。命令有6种形式:
① push a,a是一个正整数,表示往口袋里装重量为a的苹果;
② pop,表示把口袋里的第一个苹果拿出来吃;
③ top, 表示看看口袋里的第一个苹果有多重;
④ empty, 表示看一看口袋里还有多少个苹果,如果还有苹果呢就输出”^_^”,要是没有了就输出”T^T”..
⑤ end表示小公主要结束了,不再折磨可怜的口袋了。

Output

对于每个top命令和empty命令,输出正确的答案。
每个答案一行。

Sample Input

5
26 18 3 2 1
push 1
top
pop
top
empty
pop
pop
pop
top
pop
pop
empty
end

Sample Output

1
1
^_^
18
T^T
Author
曾卓敏@Amber

思路

没啥技巧,简单栈应用,题目好可爱少女心爆棚所以还是记下来了【逃走

AC代码

#include<bits/stdc++.h>
using namespace std;

void solve(void)
{
    int n;
    while(cin>>n)
    {
        stack<int>p;
        for(int i = 0 ; i < n ; i++){
            int temp;
            cin>>temp;
            p.push(temp);
        }
        string a;
        while(cin>>a)
        {
            if(a=="end") break;
            else if(a=="push"){
                int t;
                cin>>t;
                p.push(t);
            }
            else if(a=="pop"){
                p.pop();
            }
            else if(a=="top"){
                cout<<p.top()<<endl;
            }
            else if(a=="empty"){
                if(!p.empty()) cout<<"^_^"<<endl;
                else cout<<"T^T"<<endl;
            }
        }
    }
}

int main(void)
{
    solve();
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两米长弦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值