給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。
輸入首先給出正整數n
n(\le 10^5≤1
05
),為聯絡歷史條數。隨後n
n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。
在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則輸出狂人中最小的號碼及其通話次數,並且附加給出並列狂人的人數。
4
13005711862 13588625832
13505711862 13088625832
13588625832 18087925832
15005713862 13588625832
13588625832 3
#define _crt_secure_no_warnings
#include#include#include#includeusing namespace std;
struct node;
void findmax(node&nd, string &maxnum, int &maxnum_minseq, int &sameperson)
} else
}}int lhash(const string &a,int total);//雜湊函式
int main()
string tmp;
tmp.resize(11);
string maxnum = "2";
int maxnum_minseq = -1;
int sameperson = 0;//聊天次數相同的聊天狂人的個數
for (int i = 0; i < n * 2; i++)//輸入的同時建立雜湊表,同時找出最大值
pre = next;
next = next->next;
} while (next);
if (!flag)
; pre->next = ptmp;
findmax(*ptmp, maxnum, maxnum_minseq, sameperson);
} }cout << maxnum << " " << maxnum_minseq << endl;
if (sameperson > 1)
cout << maxnum << " " << maxnum_minseq << " " << sameperson << endl;
system("pause");
//釋放記憶體
delete a;
return 0;
}int lhash(const string &a,int total)//雜湊函式
電話聊天狂人
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入首先給出正整數n 10 5 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則...
電話聊天狂人
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入格式 輸入首先給出正整數n 10 5 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。輸出格式 在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如...
電話聊天狂人
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入格式 輸入首先給出正整數n 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。輸出格式 在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人...