#CCBCHBAHAI0000085. Đếm số giá trị phân biệt - miền 0..1000 (Count Distinct Values in the Range 0..1000)

    ID: 1003 Loại: Thông thường 2000ms 256MiB Tried: 0 Đã chấp nhận: 0 Độ khó: 1 Đăng bởi: Nhãn>Programming language basicsStatic arraysIteration techniquesImplementation techniquesWorking with numbers

Đếm số giá trị phân biệt - miền 0..1000 (Count Distinct Values in the Range 0..1000)

Đếm số giá trị phân biệt - miền 0..1000 (Count Distinct Values in the Range 0..1000)

Nguồn: Phước Hưng OJ

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho mảng a0,a1,…,an−1a_0,a_1,\ldots,a_{n-1} với

0≤ai≤1000.0\le a_i\le1000.

Gọi tập các giá trị xuất hiện trong mảng là

S={ai∣0≤i<n}.S=\{a_i\mid0\le i<n\}.

Hãy tính số lượng giá trị phân biệt

D=∣S∣.D=|S|.

Input

Dòng đầu chứa nn. Dòng thứ hai chứa nn số nguyên aia_i trong miền [0,1000][0,1000].

Output

In một số nguyên DD: số giá trị phân biệt trong mảng.

Subtask

Subtask 1 (20 điểm): 1≤n≤101\le n\le 10, 0≤ai≤10000\le a_i\le 1000.

Subtask 2 (30 điểm): 1≤n≤50001\le n\le 5000, 0≤ai≤10000\le a_i\le 1000.

Subtask 3 (50 điểm): 1≤n≤2⋅1051\le n\le 2\cdot 10^5, 0≤ai≤10000\le a_i\le 1000.

Ví dụ

Input

9
3 3 0 7 3 7 1000 0 5

Output

5

Giải thích

Tập giá trị xuất hiện là {0,3,5,7,1000}\{0,3,5,7,1000\} nên D=5D=5.