1507: 数据结构基础8-溶液模拟器

题目描述


小谢虽然有很多溶液,但是还是没有办法配成想要的溶液,因为万一倒错了就没有办法挽回了。因此,小谢到网上下载了一个溶液配置模拟器。模拟器在计算机中构造一种虚拟溶液,然后可以虚拟地向当前虚拟溶液中加入一定浓度、一定体积的这种溶液,模拟器会快速地算出倒入后虚拟溶液的浓度和体积。当然,如果倒错了可以撤销。
模拟器的使用步骤如下:
1)为模拟器设置一个初始体积和浓度v0 c0%
2)进行一系列操作,模拟器支持两种操作:
P(v,c)操作:表示向当前的模拟溶液中加入体积为v浓度为c的溶液;
Z操作:撤销上一步的P操作。

输入


第一行两个整数,表示V0和C0, 0<=C0<=100
第二行一个整数n,表示操作数,n<=10000
接下来n行,每行一条操作,操作为:P v c或Z
当只剩初始溶液的时候,再撤销就没有用了
任意时刻质量不会超过231-1

输出


n行,每行两个数Vi,Ci,其中Vi为整数,Ci为实数(保留5位小数)
其中第i行表示第i次操作以后的溶液体积和浓度

样例输入


100 100
2
P 100 0
Z

样例输出


200 50.00000
100 100.00000

提示


利用栈来模拟实现:
1)读入撤销时,栈顶元素出栈
2)读入溶液时,把新的溶液的体积和浓度压栈
3)每次操作完,输出栈顶的体积和浓度

来源/分类



请先 登录 后评论
  • 0 关注
  • 0 收藏,316 浏览
  • 轩爸 提出于 2019-08-02 22:10

相似问题