1575: 【入门】订单结算(1506)

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:16 解决:11

题目描述

某购物网站进行优惠活动,每个商品当天第一个订单可以打75折(75折的意思是用原价 * 0.75)。
这天网站先后依次收到了N个订单,订单的数据形式是:商品名 价格(单价*数量),商品名是长度不超过20的字符串(商品名不含空格)。
请按商品名的字典顺序,输出当天每种商品名和其售出的总价。

输入

第一行是一个整数N(N<100000),代表了订单的数量
接下来有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;
}