Có một hòn đảo rất đẹp, thu hút nhiều khách du lịch đến thăm. Trên đảo có n người thuộc nhiều bộ tộc sinh sống.Dân cư trên đảo rất thân thiện.Mỗi người thuộc một bộ tộc nào đó.Trong đoàn du lịch có một nhà nhân chủng học. Tranh thủ dịp may được ghé thăm đảo ông không bỏ phí thời gian tiến hành khảo sát. Ông gặp từng người một trên đảo với một câu hỏi duy nhất: Trên đảo, bộ tộc của bạn có bao nhiêu người?. Từ kết quả khảo sát, ông đã xác định được số bộ tộc khác nhau tồn tại trên đảo. Ví dụ: với n=10 và các câu trả lời là 5, 1, 2, 5, 5, 2, 5, 5, 2, 2 ta có thể suy ra là trên đảo có 4 bộ tộc khác nhau. Cho n và các câu trả lời. Hãy xác định số bộ tộc trên đảo. Dữ liệu đảm bảo bài toán có nghiệm.

2 câu trả lời

var i,n,d,a:longint;
    dem : array[1..1000007] of longint;
begin
assign(input,'clan.inp');reset(input);
assign(output,'clan.out');rewrite(output);
  readln(n);
for i := 1 to n do
 begin
        read(a);
        inc(dem[a]);
        if dem[a] = a then
         begin dem[a] := 0;
               inc(d);
         end;
 end;
 writeln(d);
close(input);close(output);
end.

#include <bits/stdc++.h>
using namespace std;
long long i,n,a[100005],b[100005],s,m;
int main()
{
    cin>>n;
    for (i=1;i<=n;++i)
    {
        cin>>a[i];
        b[a[i]]++;
        if(b[a[i]]==a[i])
        {s++;b[a[i]]=0;}
        if(a[i]>m) m=a[i];
    }
    for (i=1;i<=m;++i)
        if (b[i]>0) s++;
    cout<<s;
}