【♂Not The Triumph♂O(∩_∩)O哈哈~But The Struggle♂】

竞赛决不是捷径,它只是另一种艰辛的生活方式。得到与失去,只有时间会去评判;成功与失败,只有历史能去仲裁。我不会永远成功,正如我不会永远失败一样

  C++博客 :: 首页 :: 联系 ::  :: 管理
  6 Posts :: 239 Stories :: 25 Comments :: 0 Trackbacks

常用链接

留言簿(7)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 108476
  • 排名 - 229

最新评论

阅读排行榜

评论排行榜

假设,你受聘于一个软件公司。 你现在在著名的"D++ -project"(D++是一种新的通用程序设计语言)开发小组工作。你的任务很平凡,是负责内存管理器的开发,使D++能够使用大的栈空间。

input:
输入首行为对栈操作的指令数N,0 < N <= 100000.之后N行,每行为对栈操作的指令。格式无非两种,要么是PUSH A B (意思是把 B 压入栈 A),或者是POP A (意思是从栈 A取出其栈顶元素),这里A是栈的编号(1 <= A <= 1000),B是一个整数(0 <= B <= 109)。假设,输入文件中的每一个操作都是正确的(也就是说,在每一个POP操作前,对应的栈都是非空的)。

output:
对于输入文件中的每一个POP操作, 输出其值,即执行POP操作后,从对应的栈中取出的数值。按照输入文件中POP的顺序输出。一行一个数。

input:
7
PUSH 1 100
PUSH 1 200
PUSH 2 300
PUSH 2 400
POP 2
POP 1
POP 2

output:
400
200
300


【参考程序】:

2635423

17:55:22
11 Jun 2009

wolftom

1220

C++

Accepted

 

0.375

725 KB


#include
<iostream>
using namespace std;
int val[100010];
short num[100010];
int last[1010];
int n;
int main()
{
    scanf(
"%d\n",&n);
    
char s[10];
    
int ina,inb;
    
for (int i=1;i<=n;i++)
    {
        scanf(
"%s",s);
        
if (s[1]=='U')
        {
            scanf(
"%d %d",&ina,&inb);
            val[i]
=inb;num[i]=ina;
            last[ina]
=i;
        }
        
else 
        {
            scanf(
"%d",&ina);
            printf(
"%d\n",val[last[ina]]);
            num[i]
=0;num[last[ina]]=0;
            
while (num[last[ina]]!=ina && last[ina])
                last[ina]
--;
        }
    }
    
return 0;
}
posted on 2009-06-11 20:07 开拓者 阅读(153) 评论(0)  编辑 收藏 引用 所属分类: URAL 题解

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理