ACM简单题Description 小壕是个慷慨的孩子,他喜欢收集礼物以及送礼物给别人,而且他有一个很深的口袋,可以不断的放礼物进去以及从口袋里掏出礼物,他的口袋遵从一个栈(stack)的特性:后进先
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 17:36:08
ACM简单题Description 小壕是个慷慨的孩子,他喜欢收集礼物以及送礼物给别人,而且他有一个很深的口袋,可以不断的放礼物进去以及从口袋里掏出礼物,他的口袋遵从一个栈(stack)的特性:后进先
ACM简单题
Description
小壕是个慷慨的孩子,他喜欢收集礼物以及送礼物给别人,而且他有一个很深的口袋,可以不断的放礼物进去以及从口袋里掏出礼物,他的口袋遵从一个栈(stack)的特性:后进先出.即当前最后进入他口袋的礼物在口袋的最上层,在他掏出礼物送人的时候将最先被拿出来.例如他收集了编号分别为为1,2,3的礼物依次放进自己口袋,然后他送出礼物的顺序则是按照3,2,1的次序.(小壕每次送出礼物的时候必定选择并掏出口袋最上层的礼物送给对方),现在给定小壕获得礼物的以及向别人赠送礼物的时间顺序,请按时间顺序给出每个人分别获得了哪些礼物.
假设小壕一开始口袋为空.
输入数据保证每次小壕决定赠送礼物的时候他总能从口袋中掏出礼物.
Input
输入只包含一组数据
第一行为一个数字N,代表小壕收集礼物和赠送礼物事件次数的总和,按时间顺序给出.(n
ACM简单题Description 小壕是个慷慨的孩子,他喜欢收集礼物以及送礼物给别人,而且他有一个很深的口袋,可以不断的放礼物进去以及从口袋里掏出礼物,他的口袋遵从一个栈(stack)的特性:后进先
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<stack>
#include<algorithm>
using namespace std;
stack<string> st;
int main(){
\x05int n,i,op;
\x05string str;
\x05while(scanf("%d",&n)!=EOF){
\x05\x05while(st.size())// 清空栈
\x05\x05\x05st.pop();
\x05\x05for(i=0;i<n;i++){
\x05\x05\x05scanf("%d",&op);
\x05\x05\x05cin>>str;
\x05\x05\x05if(op==1)
\x05\x05\x05\x05st.push(str);
\x05\x05\x05else{
\x05\x05\x05\x05printf("%s %s\n",str.c_str(),st.top().c_str() );
\x05\x05\x05\x05st.pop();
\x05\x05\x05}
\x05\x05}
\x05}
}
参考这段代码哈,提交试试能不能AC,欢迎交流.