1575: 【入门】订单结算(1506)
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:16
解决:11
题目描述
某购物网站进行优惠活动,每个商品当天第一个订单可以打75折(75折的意思是用原价 * 0.75)。
这天网站先后依次收到了N个订单,订单的数据形式是:商品名 价格(单价*数量),商品名是长度不超过20的字符串(商品名不含空格)。
请按商品名的字典顺序,输出当天每种商品名和其售出的总价。
这天网站先后依次收到了N个订单,订单的数据形式是:商品名 价格(单价*数量),商品名是长度不超过20的字符串(商品名不含空格)。
请按商品名的字典顺序,输出当天每种商品名和其售出的总价。
输入
第一行是一个整数N(N<100000),代表了订单的数量
接下来有N行,每行第一个数据是商品名的拼音(没有空格),第二行是商品价格(最多包含1位小数)
接下来有N行,每行第一个数据是商品名的拼音(没有空格),第二行是商品价格(最多包含1位小数)
输出
若干行,按照商品名的字典顺序,输出当天每种商品名和其售出的总价(总价保留1位小数)
样例输入 复制
5
shouji 1080.5
shouji 9800.0
diannao 2980.2
diannao 2280.5
diannao 1000.0
样例输出 复制
diannao 5515.6
shouji 10610.4
提示
#include<bits/stdc++.h> using namespace std; map<string,double> m; int n; int main(){ string s; double t; cin>>n; while(n--) { cin>>s>>t; if (m.count(s)==0) m[ s ]=t*0.75; else m[ s ]+=t; } map<string,double>::iterator it; for(it=m.begin();it!=m.end();it++) { cout<<fixed<<setprecision(1)<<it->first<<" "<<it->second<<endl; } return 0; }