题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1263
题目大意:对同一地方的同一水果进行归类。
解题思路: map真心强大,以前只知道map的一维运用,今天了解了map的二维运用(map映射map)。
/*
map用法总结
1,c++里的输入输出cout<<it->first<<endl;所以说,用map就用c++的输入输出吧
2,遍历
map<string,int>::iterator it;
for(it=map.
*/
#include<bits/stdc++.h>
#include<map>
using namespace std;
int main()
{
/*freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout) ;*/
int n;
scanf("%d",&n);
while(n--)
{
int t;
scanf("%d",&t);
string palce,name;
int num;
map<string,map<string,int> >zong;//二维map
while(t--)
{
cin>>name>>palce>>num;
zong[palce][name]+=num;
}
map<string,map<string,int> >::iterator it;//迭代器
for(it=zong.begin();it!=zong.end();it++)
{
cout<<it->first<<endl;
map<string,int>::iterator it2;
for(it2=it->second.begin();it2!=it->second.end();it2++)
{
cout<<" |----"<<it2->first<<"("<<it2->second<<")"<<endl;
}
}
if(n!=0)cout<<endl;
}
}