總時間限制: 1000ms 記憶體限制: 65536kb
描述在乙個有180人的大班級中,存在兩個人生日相同的概率非常大,現給出每個學生的學號,出生月日。試找出所有生日相同的學生。
輸入第一行為整數n,表示有n個學生,n<100。
此後每行包含乙個字串和兩個整數,分別表示學生的學號(字串長度小於10)和出生月(1<=m<=12)日(1<=d<=31)。
學號、月、日之間用乙個空格分隔。
輸出對每組生日相同的學生,輸出一行,
其中前兩個數字表示月和日,後面跟著所有在當天出生的學生的學號,數字、學號之間都用乙個空格分隔。
對所有的輸出,要求按日期從前到後的順序輸出。
對生日相同的學號,按輸入的順序輸出。
樣例輸入
500508192 3 2
00508153 4 5
00508172 3 2
00508023 4 5
00509122 4 5
樣例輸出
3 2 00508192 00508172
4 5 00508153 00508023 00509122
問題分析:該問題可以看成排序問題,用庫函式sort來進行排序,然後遍歷一遍找出連續的相同生日的同學,記錄人數並輸出編號。
**如下:
#include
#include
#include
using
namespace std;
struct students
;bool
cmp(students s1,students s2)
else
if(s1.d!=s2.d)
return s1.delse
return s1.number//保證按輸入順序輸出
}const
int n=
100;
students a[n]
;int
main()
sort
(a,a+n,cmp)
;int sum=0;
for(
int i=
0;i)else
cout<} sum=0;
}}return0;
}
2724 生日相同
兩個問題 1 多組輸入 記得用while迴圈 2 根據輸入時間進行排序 總時間限制 1000ms 記憶體限制 65536kb 描述在乙個有180人的大班級中,存在兩個人生日相同的概率非常大,現給出每個學生的學號,出生月日。試找出所有生日相同的學生。輸入第一行為整數n,表示有n個學生,n 100。此後...
NOI 6377 生日相同2 0
思路 使用結構體進行解題,在這裡我使用的比較麻煩的set和map為了判重和排序,也可以直接使用結構體和陣列,儲存 12 31 這種形式 注意重名 我最後5分就卡在了重名上 include include include include include include include include ...
oj上的3 生日相同
總時間限制 1000ms 記憶體限制 65536kb 描述在乙個有180人的大班級中,存在兩個人生日相同的概率非常大,現給出每個學生的學號,出生月日。試找出所有生日相同的學生。輸入第一行為整數n,表示有n個學生,n 100。此後每行包含乙個字串和兩個整數,分別表示學生的學號 字串長度小於10 和出生...