2023年分割槽聯賽提高組之一 統計數字

2021-07-25 14:24:34 字數 1667 閱讀 3773

某次科研調查時得到了n個自然數,每個數均不超過1500000000(1.5*109)。已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。

輸入包含n+1行;

第一行是整數n,表示自然數的個數;

第2~n+1每行乙個自然數。

輸出包含m行(m為n個自然數中不相同數的個數),按照自然數從小到大的順序輸出。每行輸出兩個整數,分別是自然數和該數出現的次數,其間用乙個空格隔開。

8 2

4 2

4 5

100

2 100

2 3

4 2

5 1

100 2

40%的資料滿足:1<=n<=1000

80%的資料滿足:1<=n<=50000

100%的資料滿足:1<=n<=200000,每個數均不超過1500 000 000(1.5*109)

o(2n)

記錄每個數字出現的次數和是什麼數字,排序。

const

maxn=10000007;

var x,y,a,b:array [1..maxn] of longint;

i,j,n,s:longint;

procedure

init

(t:longint);

begin

j:=t mod maxn;

while (x[j]<>0) and (x[j]<>t) do

j:=(j+1) mod maxn;

x[j]:=t;

inc(y[j]);

end;

procedure

qsort

(l,r:longint);

var i,j,t,mid:longint;

begin

i:=l; j:=r;

mid:=a[(l+r) div

2]; while ido

begin

while a[i]do inc(i);

while a[j]>mid do dec(j);

if i<=j then

begin

t:=a[i];a[i]:=a[j];a[j]:=t;

t:=b[i];b[i]:=b[j];b[j]:=t;

inc(i);dec(j);

end;

end;

if ithen qsort(i,r);

if lthen qsort(l,j);

end;

begin

readln(n);

for i:=1

to n do

begin

readln(a[i]);

init(a[i]);

end;

for i:=1

to maxn do

if y[i]<>0

then

begin

inc(s);

b[s]:=y[i];

a[s]:=x[i];

end;

qsort(1,s);

for i:=1

to s do

writeln(a[i],' ',b[i]);

end.

2023年分割槽聯賽提高組之一 統計數字

某次科研調查時得到了n個自然數,每個數均不超過1500000000 1.5 109 已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。輸入包含n 1行 第一行是整數n,表示自然數的個數 第2 n 1每行乙個自然數。輸出包含m行 m為n個自...

2023年分割槽聯賽提高組之一 統計數字

description 某次科研調查時得到了n個自然數,每個數均不超過1500000000 1.5 109 已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。input 輸入包含n 1行 第一行是整數n,表示自然數的個數 第2 n 1每行...

2023年分割槽聯賽普級組之一 不

description 津津上初中了。媽媽認為津津應該更加用功學習,所以津津除了上學之外,還要參加媽媽為她報名的各科複習班。另外每週媽媽還會送她去學習朗誦 舞蹈和鋼琴。但是津津如果一天上課超過八個小時就會不高興,而且上得越久就會越不高興。假設津津不會因為其它事不高興,並且她的不高興不會持續到第二天。...