3.1数据结构之结构 6377 生日相同 2.0
2016-11-08 10:09
381 查看
总时间限制: 1000ms 内存限制: 65536kB
描述
在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。
输入第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字母大写,其余小写,不含空格,且长度小于20)和出生月(1 ≤ m ≤ 12)日(1 ≤ d ≤ 31)。名字、月、日之间用一个空格分隔
输出每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的名字,数字、名字之间都用一个空格分隔。对所有的输出,要求按日期从前到后的顺序输出。 对生日相同的名字,按名字从短到长按序输出,长度相同的按字典序输出。如没有生日相同的学生,输出”None”
样例输入
样例输出
描述
在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。
输入第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字母大写,其余小写,不含空格,且长度小于20)和出生月(1 ≤ m ≤ 12)日(1 ≤ d ≤ 31)。名字、月、日之间用一个空格分隔
输出每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的名字,数字、名字之间都用一个空格分隔。对所有的输出,要求按日期从前到后的顺序输出。 对生日相同的名字,按名字从短到长按序输出,长度相同的按字典序输出。如没有生日相同的学生,输出”None”
样例输入
6 Avril 3 2 Candy 4 5 Tim 3 2 Sufia 4 5 Lagrange 4 5 Bill 3 2
样例输出
3 2 Tim Bill Avril 4 5 Candy Sufia Lagrange
//http://noi.openjudge.cn/
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; struct Person{ string name; int mon,day; }Stu[181]; int compare(const Person &a,const Person &b) { if(a.mon!=b.mon)return a.mon<b.mon; if(a.day!=b.day)return a.day<b.day; if(a.name.size()==b.name.size())return a.name<b.name; return a.name.size()<b.name.size(); } int main() { //freopen("st.in","r",stdin), //freopen("st.out","w",stdout); int n,book[13][33]={0},b=0; cin>>n; for(int i=1;i<=n;i++) cin>>Stu[i].name>>Stu[i].mon>>Stu[i].day; sort(Stu+1,Stu+1+n,compare); for(int i=1;i<=n;i++) if(Stu[i].mon==Stu[i+1].mon&&Stu[i].day==Stu[i+1].day&&book[Stu[i].mon][Stu[i].day]==0) { if(b)cout<<endl; b=1; cout<<Stu[i].mon<<" "<<Stu[i].day<<" "<<Stu[i].name; book[Stu[i].mon][Stu[i].day]=1; } else if(book[Stu[i].mon][Stu[i].day]==1) cout<<" "<<Stu[i].name; if(!b)cout<<"None"; return 0; }
相关文章推荐
- 6377:生日相同 2.0(3.1数据结构之结构)
- NOI3.1 6377:生日相同 2.0
- OpenJudge 6377:生日相同 2.0——题解
- 6377:生日相同 2.0 题解
- # swift2.0 数据结构:元组,枚举,结构体
- 生日相同 2.0
- 【NOI题解】 3.1数据结构之结构
- 生日相同 2.0 【open judge】【结构体】
- OpenJudge-计算机概论(A)-1-生日相同 2.0
- Firebird2.5:a、b表结构相同,向a表插入b表的数据
- java数据结构--线性结构
- 数据结构 学习笔记(二):线性结构:线性表(顺序表,链表,广义表,多重链表)
- MySQL多个相同结构的表查询并把结果合并放在一起的语句(union all)
- 数据结构_图_邻接多重表做存储结构遍历无向图_C++实现
- [置顶] ※数据结构※→☆线性表结构(list)☆============单向链表结构(list single)(二)
- c# 对两个Datatable的结构相同进行合并,结构相同和不同
- 数据结构中图结构的最小生成树算法(普里姆算法)
- 2-4-单链表链式存储结构-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版
- HBase内存结构之跳表数据结构浅析
- 数据结构_链表实现无限循环的"环"结构/循环队列