首页 > 代码库 > hdu1263 简单模拟
hdu1263 简单模拟
题意:根据水果销量表,按照特定格式输出
格式:首先按产地排序,然后同一产地按水果名排序
注意:第一,设计多级排序
第二,同一产地同一水果可能多次出现,所以需要在前面已经输入的水果里面遍历找一次
第三,这里
#include <iostream> #include <string> #include <algorithm> using namespace std; int flag;//不同产地不同名的水果种类数量 struct Node{ string name,id; int sum; bool operator<(const Node &N)const { if(id == N.id) return name < N.name; else return id < N.id; } }node[105]; void print(int M){ for(int i = 0; i < flag; ) { string id = node[i].id; cout << id << endl; cout <<" |----" << node[i].name << '(' << node[i].sum <<')' <<endl; i ++; while(id == node[i].id && i < M) { cout <<" |----" << node[i].name << '(' << node[i].sum <<')' <<endl; i ++; } } } int main() { int N,M; cin >> N; string name,id; int sum; while(N --) { cin >> M; flag = 0; for(int i = 0; i < M; i ++) { cin >> name >> id >> sum; int j; for(j = 0; j < i; j ++) //在前面已有的水果中查找一次 { if(name == node[j].name && id == node[j].id) { node[j].sum += sum; break; } } if(i == j) //在之前的水果中没找到,那么就是一种新的水果 node[flag].id = id,node[flag].name = name,node[flag++].sum = sum; } sort(node,node+flag); print(M); if(N != 0) cout << endl;//两个案中间空行例 } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。