提交时间:2025-05-03 13:28:06
运行 ID: 319966
#include<bits/stdc++.h> using namespace std; struct hsg{ string name; //姓名 int m,d;// 月 日 }a[188]; bool cmp(hsg x,hsg y){ if(x.name.size()!=y.name.size()) return x.name.size()<y.name.size();//名字短的在前面 return x.name<y.name;//按字典序从小到大 } int date[13][35];//行代表月 列代表日 数组存的就是某月某日生日的人数 int main(){ int n,s=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i].name>>a[i].m>>a[i].d; date[a[i].m][a[i].d]++; } sort(a+1,a+n+1,cmp); for(int i=1;i<=12;i++){ //月 for(int j=1;j<=31;j++){ //日 if(date[i][j]>1){ //i月j日出生的人数超过1个 s=1; cout<<i<<" "<<j<<" "; for(int k=1;k<=n;k++){ if(a[k].m==i&&a[k].d==j){ cout<<a[k].name<<" "; } } cout<<endl; } } } if(s==0) cout<<"None"; return 0; }