码迷,mamicode.com
首页 > 其他好文 > 详细

hdoj 1263 水果(map)

时间:2015-08-05 14:33:54      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

Input
第一行正整数N(0<N<=10)表示有N组测试数据.
每组测试数据的第一行是一个整数M(0<M<=100),表示工有M次成功的交易.其后有M行数据,每行表示一次交易,由水果名称(小写字母组成,长度不超过80),水果产地(小写字母组成,长度不超过80)和交易的水果数目(正整数,不超过100)组成.
Output
对于每一组测试数据,请你输出一份排版格式正确(请分析样本输出)的水果销售情况明细表.这份明细表包括所有水果的产地,名称和销售数目的信息.水果先按产地分类,产地按字母顺序排列;同一产地的水果按照名称排序,名称按字母顺序排序.
两组测试数据之间有一个空行.最后一组测试数据之后没有空行.
Sample Input
1
5
apple shandong 3
pineapple guangdong 1
sugarcane guangdong 1
pineapple guangdong 3
pineapple guangdong 1
Sample Output
guangdong
|----pineapple(5)
|----sugarcane(1)
shandong
|----apple(3)
技术分享
 
 1     #include<iostream>
 2     #include<map>
 3     #include<string>
 4     using namespace std;
 5     int main()
 6     {
 7         int T;
 8         cin>>T;
 9         while(T--){
10             int n;
11             string fruit;
12             string add;
13             int num;
14             cin>>n;
15             map<string,map<string,int> >m;
16             while(n--){
17                 cin>>fruit>>add>>num;
18                 (m[add])[fruit] += num;
19             }
20             map<string,map<string,int> >::iterator key;
21             for(key = m.begin();key!=m.end();key++){
22                 cout<<key->first<<endl;
23                 map<string,int>::iterator i= (key->second).begin();
24                 for(;i!=(key->second).end();i++)
25                     cout<<"   |----"<<i->first<<"("<<i->second<<")"<<endl;
26                 }
27                 if(T>0){
28                     cout<<endl;
29             }
30         }
31     }

 

hdoj 1263 水果(map)

标签:

原文地址:http://www.cnblogs.com/blueprintf/p/4704452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!