7 14 電話聊天狂人(map)

2021-10-09 14:53:28 字數 1072 閱讀 5485

給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。

輸入格式:

輸入首先給出正整數n(≤10^5), 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。

輸出格式:

在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則輸出狂人中最小的號碼及其通話次數,並且附加給出並列狂人的人數。

輸入樣例:

413005711862 13588625832

13505711862 13088625832

13588625832 18087925832

15005713862 13588625832

輸出樣例:

13588625832 3

思路: 題目輸出要求,如果**狂人不唯一,輸出狂人中最小的號碼及其通話次數,同時給出並列狂人的人數。

統計map中value即手機號碼出現次數進行排序; 由於map會以鍵從小到大的順序自動排序,

因此排在第一位的肯定是「狂人中最小的號碼及其通話次數」;

但是 這裡遍歷排序會遇到乙個問題,可能會破壞map 本來的key排序,在比較中如果最大值相等需要在對它的key 值進行從小到大排序。

#include

#include

#include

#include

#include

#include

using

namespace std;

intmain()

int same =

1, max =0;

mapint>

::iterator it;

for(it = m.

begin()

;it != m.

end(

);it++

)else

if(it-

>second == max)}}

cout<" "

return0;

}

7 14 電話聊天狂人

給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入首先給出正整數n 10 5 10的5次方 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣...

7 14 電話聊天狂人 map的應用

給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入格式 輸入首先給出正整數n 1 00000 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。輸出格式 在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分...

7 14 電話聊天狂人 (25 分)

給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入首先給出正整數n 10 5 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則...