POJ3238生日相同問題C

2021-10-10 07:02:00 字數 1149 閱讀 9194

總時間限制: 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 和出生...