用一个很“特别”的map,这个题目就行了;<
map可以通过键找到值,这里我们需要通过地名找到水果的种类通过水果的种类找到他的出售次数;所以这里定义一个map<string,map<string,int>>三个变量分别是地名,水果名,销售次数;
#include <iostream>
#include <map>
#include <string.h>
#include <string>
using namespace std;
int main()
{
int x,y;
cin>>x;
while (x--)
{
cin>>y;
int count;
char name[100],place[100];
map<string,map<string,int> > list;
while(y--)
{
cin>>name>>place;
cin>>count;
list[place][name]+=count;//保存地名,种类,次数;
}
map<string,map<string,int>>::iterator it;
map<string,int>::iterator it1;
for(it=list.begin();it!=list.end();it++)
{
cout<<it->first<<endl;
for (it1=(it->second).begin();it1!=(it->second).end(); it1++)
{
cout<<" |----";
cout<<it1->first<<'('<<it1->second<<')'<<endl;
}
}
list.clear();
if(x!=0)cout<<endl;
}
return 0;
}