# ĐỀ KIỂM TRA LỚP 10 TIN
Trường ĐHSP Hà Nội - Trường THPT Chuyên
Môn thi: Tin học - Ngày 01/10/2015
Thời gian làm bài: 180 phút
## TỔNG QUAN VỀ ĐỀ THI
Bài | Tên file bài làm | Giới hạn mỗi test | Điểm
--- | ---------------- | ----------------- | ----
1 | `NEGPAIRS.*` | 0.5 giây | 100
2 | `DCOUNT.*` | 0.5 giây | 100
3 | `SUMAVR.*` | 0.5 giây | 100
4 | `ZPAIRS.*` | 0.5 giây | 100
5 | `HAMMING.*` | 0.5 giây | 100
Phần mở rộng `*` là PAS hay CPP tùy theo ngôn ngữ và môi trường lập trình (Free
Pascal hay CodeBlock).
## Bài 1. CẶP SỐ ĐỐI NHAU (NEGPAIRS.*)
Cho dãy số nguyên A = (a1, a2, ..., an). Hãy
cho biết có bao nhiêu cặp chỉ số (i, j) trong đó i ≠ j thỏa mãn ai =
−aj
**Dữ liệu:** Vào từ thiết bị nhập chuẩn:
* Dòng 1 chứa số nguyên dương n ≤ 106
* Dòng 2 chứa n số nguyên a1, a2, ..., an cách
nhau bởi dấu cách (∀i: |ai| ≤ 100)
**Kết quả:** Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất là số cặp i ≠ j
thỏa mãn ai = −aj.
**Ví dụ:**
Sample Input | Sample Output
------------------------- | -------------
9
-3 -2 -1 0 9 0 1 2 3 | 4
6
0 0 0 0 | 6
## Bài 2. THỐNG KÊ (DCOUNT.*)
Cho dãy số nguyên không âm A = (a1, a2, ...,
an) gồm n phần tử.
**Yêu cầu:** Hãy đếm số lượng các giá trị khác nhau có trong dãy A và đưa ra số
lần xuất hiện của phần tử xuất hiện nhiều nhất?
**Dữ liệu:** Vào từ thiết bị nhập chuẩn
* Dòng đầu ghi số n (n ≤ 106)
* Dòng tiếp theo gồm n số là các phần tử của dãy A, (0 ≤ ai ≤
106)
**Kết quả:** Ghi ra thiết bị xuất chuẩn gồm 2 số k và t: k là số lượng các giá
trị khác nhau và t là số lần xuất hiện của phần tử xuất hiện nhiều nhất trong
dãy đã cho.
**Ví dụ:**
Sample Input | Sample Output
----------------------- | -------------
8
11 2 13 4 50 2 2 3 | 6 3
*Giải thích: có 6 giá trị khác nhau trong dãy là 2, 3, 4, 11, 13 và 50, số 2
xuất hiện nhiều nhất là 3 lần.*
## Bài 3. TRUNG BÌNH CỘNG (SUMAVR.*)
Cho dãy số nguyên B = (b1, b2, ..., bn), hãy
tìm dãy số nguyên A = (a1, a2, ..., an) sao
cho ∀i: 1 ≤ i ≤ n trung bình cộng của i phần tử đầu tiên trong dãy A đúng bằng
bi:
a1 + a2 + ... + an = bi x i, ∀i =
1, 2, ..., n
**Dữ liệu:** Vào từ thiết bị nhập chuẩn:
* Dòng 1 chứa số nguyên dương n ≤ 105
* Dòng 2 chứa n số nguyên b1, b2, ..., bn cách
nhau bởi dấu cách (∀i: |bi| ≤ 109)
**Kết quả:** Ghi ra thiết bị xuất chuẩn n số a1, a2, ...,
an theo đúng thứ tự cách nhau bởi dấu cách.
**Ví dụ:**
Sample Input | Sample Output
-------------- | -------------
5
1 2 2 3 4 | 1 3 2 6 8
## Bài 4. GHÉP CẶP (ZPAIRS.*)
Cho hai dãy số A = (a1, a2, ..., an) và dãy số
B = (b1, b2, ..., bn) đã được sắp theo thứ tự
không giảm.
Một phép ghép cặp là phép lấy một phần tử ai của dãy A và một phần
tử bj của dãy B thành một cặp (ai, bj). Chi
phí của cặp này được tính bằng |ai − bj|.
**Yêu cầu:** Tính xem có thể ghép tối đa được bao nhiêu cặp sao cho tổng chi
phí của các cặp = 0. Biết rằng, mỗi phần tử trong A cũng như trong B chỉ được
ghép vào một cặp duy nhất.
**Dữ liệu:** Vào từ thiết bị nhập chuẩn:
* Dòng 1: 2 số n, m lần lượt là số phần tử của dãy A, B (n, m ≤ 105).
* Dòng 2: gồm n số nguyên sắp theo thứ tự không giảm là dãy A = (a1,
a2, ..., an), |ai| ≤ 109.
* Dòng 3: gồm m số nguyên sắp theo thứ tự không giảm là dãy B =
,(b1, b2, ..., bn) |bi| ≤
109.
**Kết quả:** Ghi ra thiết bị xuất chuẩn gồm duy nhất một số k là số cặp ghép
lớn nhất tìm được thỏa mãn yêu cầu đề bài.
**Ví dụ:**
Sample Input | Sample Output
--------------------------- | -------------
4 5
1 2 2 3
2 3 5 5 5 | 2
## Bài 5. DÃY SỐ HAMMING (HAMMING.*)
Dãy số nguyên dương tăng dần trong đó, phần tử đầu tiên là a1 = 1,
các phần tử tiếp theo có ước nguyên tố của mỗi số không quá 5 được gọi là dãy
hamming. Như vậy, 10 = 2 x 5 sẽ là một số trong hãy Hamming, còn 26 = 2 x 13
không thuộc dãy hamming.
Phần đầu của dãy Hamming là: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ...
**Yêu cầu:** Cho một dãy gồm n số nguyên a1, a2, ...,
an (ai ≤ 109). Với mỗi số ai hãy
kiểm tra xem nó có thuộc dãy số Hamming?
**Dữ liệu:** Vào từ thiết bị nhập chuẩn:
* Dòng đầu là số n (n ≤ 105)
* n dòng tiếp theo, mỗi dòng ghi một số nguyên của dãy a1,
a2, ..., an (ai ≤ 109).
**Kết quả:** Ghi ra thiết bị xuất chuẩn gồm n dòng mỗi dòng gồm YES hoặc NO
tương ứng với mỗi số ai có/không thuộc dãy Hamming.
**Ví dụ:**
Sample Input | Sample Output
------------ | -------------
11 | YES
1 | YES
2 | YES
6 | NO
7 | YES
8 | YES
9 | YES
10 | NO
11 | YES
12 | NO
13 | NO
14 |