一道c语言题

习题4.4 公司(company)
【题目描述】
假设有一个公司,最开始只有一个人,存款为0。以后可能会发生四种事件:
事件1:公司里招聘了一个人,他的存款为x。
事件2:公司赢利,每个人的存款增加x。
事件3:公司裁员,凡是存款小于或等于x 的人都离开公司。
事件4:公司希望知道存款第x 多的人有多少钱。比如有四个人存款分别为
3,2,2,1,则x=1, 2, 3, 4 时结果分别为3, 2, 2, 1。如果x 大于公司总人数,则
结果被定义为-1。
试编写程序模拟这一过程。
【输入】
输入第一行包括一个整数k,表示事件的个数。以下k 行依次给出k 个事件。
每行包括两个整数t, x,其中t 表示事件的种类,x 的含义如上所述。
【输出】
对于每个事件3,输出一行,包括离开公司的人数;对于每个事件4,输出
所求的存款数。
【样例输入】
5
1 3
2 5
1 5
2 1
1 5
4 1
4 3
3 6
4 2
【样例输出】
9
6
3
-1
【限制】
1<=k<=106,任何时候任何人的存款均不超过106。
提示:用树的知识:
请考虑算法复杂度;
我要源程序!
做出来的我会给很多分;
今晚11:30之前做出来的给400分
I'm sorry that the first line is 9

第1个回答  2006-05-15
c啊,我已经忘记的差不多了,用JAVA给你写一个好不好,其实它们的数据类型都是差不多的,就是先问问你 能看懂的话我就写给你!
第2个回答  2006-05-15
嗯~~~嗯~~~~~~~~嗯~~~~~~~~~~~~~~~~~~~~~~~嗯~~~~~~~~~看不懂~!!
第3个回答  2006-05-15
我还得说句废话,“用树的知识: 请考虑算法复杂度; ”,要求好高
k小于106,有必要一定用树吗?
我数据结构没学好,不然这问题很简单
第4个回答  2006-05-15
这样被你一提示反倒不好做了,时间复杂度怎么才算小啊?
第5个回答  2006-05-15
这问题有点复杂。。。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网