You are on page 1of 8

BÀI TẬP KIỂU MẢNG

Bài 1. Nhập xuất mảng (RARR.CPP) .......................................................................................................... 1


Bài 2. Tính tổng (SUMARR.CPP) ................................................................................................................. 2
Bài 3. Tìm kiếm (SEARCH.CPP) .................................................................................................................. 2
Bài 4. Tiếp tục tìm kiếm (SEARCH1.CPP)................................................................................................ 2
Bài 5. Điểm 10 (TEN.CPP) ............................................................................................................................. 3
Bài 6. Giá trị lớn nhất (MAX.CPP)............................................................................................................... 3
Bài 7. Phần tử nhỏ nhất (MIN.CPP) ........................................................................................................... 4
Bài 8. Số chẵn cuối cùng (EVEN.CPP) ....................................................................................................... 4
Bài 9. Số lượng số nguyên tố (CPRIME.CPP) ......................................................................................... 4
Bài 10. Xây dựng mảng (MARRAY.CPP) ................................................................................................ 5
Bài 11. GIÁ TRỊ KHÁC NHAU (DVALUES.*) .......................................................................................... 5
Bài 12. CẶP SỐ BẰNG NHAU (PAIRS.*) .................................................................................................. 6
Bài 13. CẶP SỐ (DPAIRS.*) .......................................................................................................................... 6
Bài 14. TRỘN (MERGE.*) ............................................................................................................................. 7
Bài 15. NỐI ĐIỂM ĐEN TRẮNG (BWPOINTS.CPP) ............................................................................. 8

Bài 1. Nhập xuất mảng (RARR.CPP)


Cho 1 dãy số gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 .
Hãy in ra màn hình dãy số đã cho theo thứ tự ngược lại
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛 (𝑛 ≤ 100.000).
• Dòng tiếp theo chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 109 ).
Kết quả: Ghi ra màn hình 𝑛 số theo thứ tự 𝑎𝑛 , 𝑎𝑛−1 , … , 𝑎1 .
Ví dụ:

Sample Input Sample Output


5 83271
17238
Bài 2. Tính tổng (SUMARR.CPP)
Cho 1 dãy số gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 .
Yêu cầu: Hãy tính tổng của dãy số vừa nhập
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛 (𝑛 ≤ 100.000).
• Dòng tiếp theo chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 100.000).
Kết quả: Ghi ra màn hình một số duy nhất là tổng của các số vừa nhập
Ví dụ:

Sample Input Sample Output Giải thích


5 21 1+ 7 + 2 + 3 + 8 = 21
17238

Bài 3. Tìm kiếm (SEARCH.CPP)


Cho 1 dãy số gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 và 1 số v.
Yêu cầu: Hãy cho biết trong dãy số vừa nhập có bao nhiêu giá trị bằng v?
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛, 𝑣 (𝑛 ≤ 100.000, |𝑣| ≤ 109 ).
• Dòng tiếp theo chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 109 ).
Kết quả: Ghi ra màn hình một số nguyên duy nhất là số lượng phần tử bằng v trong dãy đã
cho
Ví dụ:

Sample Input Sample Output


82 3
17238272

Bài 4. Tiếp tục tìm kiếm (SEARCH1.CPP)


Cho 1 dãy số gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 và 1 số v.
Yêu cầu: Hãy cho biết chỉ số của các phần tử của dãy số vừa nhập có giá trị bằng v?
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛, 𝑣 (𝑛 ≤ 100.000, |𝑣| ≤ 109 ).
• Dòng tiếp theo chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 109 ).
Kết quả: Ghi ra màn hình chỉ số của các phần tử có giá trị bằng v.
Ví dụ:

Sample Input Sample Output


82 368
17238272

Bài 5. Điểm 10 (TEN.CPP)


Tại một kì thi cấp thành phố, người ta đã chấm điểm xong 𝑛 bài của các thí sinh tham gia dự
thi. Điểm của bạn thứ i là 𝑎𝑖 (0 ≤ 𝑎𝑖 ≤ 10) điểm.
HIện tại, Ban tổ chức muốn thống kê xem có bao nhiêu bạn đạt điểm tuyệt đối.
Yêu cầu: Bạn hãy viết chương trình thực hiện yêu cầu của BTC nhé!
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛 (𝑛 ≤ 100.000).
• Dòng tiếp theo chứa 𝑛 số nguyên dương 𝑎1 , 𝑎2 , … , 𝑎𝑛 (0 ≤ 𝑎𝑖 ≤ 10).
Kết quả: Ghi ra màn hình một số nguyên duy nhất là số bạn đạt điểm tuyệt đối trong kì thi
vừa qua.
Ví dụ:

Sample Input Sample Output


12 4
10 7 2 10 8 2 10 2 9 10 9 2

Bài 6. Giá trị lớn nhất (MAX.CPP)


Cho 1 dãy số gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 .
Yêu cầu: Hãy cho biết giá trị lớn nhất của dãy số vừa nhập là bao nhiêu và có bao nhiêu
phần tử bằng giá trị lớn nhất đó?
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛 (𝑛 ≤ 100.000).
• Dòng tiếp theo chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 109 ).
Kết quả: Ghi ra màn hình giá trị lớn nhất tìm được và số lượng phần tử bằng nó.
Ví dụ:

Sample Input Sample Output Giải thích


8 82 Giá trị lớn nhất: 8
17238382 Số phần tử bằng 8 trong dãy: 2

Bài 7. Phần tử nhỏ nhất (MIN.CPP)


Cho 1 dãy số gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 .
Yêu cầu: Hãy cho biết giá trị nhỏ nhất của dãy số vừa nhập là bao nhiêu và có bao nhiêu
phần tử bằng giá trị nhỏ nhất đó?
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛 (𝑛 ≤ 100.000).
• Dòng tiếp theo chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 109 ).
Kết quả: Ghi ra màn hình giá trị nhỏ nhất tìm được và số lượng phần tử bằng nó.
Ví dụ:

Sample Input Sample Output Giải thích


8 11 Giá trị nhỏ nhất: 1
17238382 Số phần tử bằng 1 trong dãy: 1

Bài 8. Số chẵn cuối cùng (EVEN.CPP)


Cho 1 dãy số gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 .
Yêu cầu: Hãy chỉ ra phần tử chẵn cuối cùng (theo đúng thứ tự nhập vào) trong dãy vừa
nhập. Nếu không có phần tử nào chẵn, hãy in ra số -1
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛 (𝑛 ≤ 100.000).
• Dòng tiếp theo chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 100.000).
Kết quả: Ghi ra màn hình hai số là chỉ số của phần tử chẵn cuối cùng và giá trị chẵn đó. Nếu
không có phần tử chẵn nào, chỉ cần in ra 1 số -1.
Ví dụ:

Sample Input Sample Output Giải thích


8 54 số 4 là số chẵn và nó nằm ở vị
17234537 trí thứ 5, sau nó toàn số lẻ.

Bài 9. Số lượng số nguyên tố (CPRIME.CPP)


Cho 1 dãy số gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 .
Yêu cầu: Hãy đếm xem trong dãy có bao nhiêu số là số nguyên tố?
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛 (𝑛 ≤ 100.000).
• Dòng tiếp theo chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 100.000).
Kết quả: Ghi ra màn hình một số duy nhất là số lượng số nguyên tố của dãy đã cho.s
Ví dụ:

Sample Input Sample Output Giải thích


8 5 Có 5 số nguyên tố là: 7, 2, 3, 5, 7
1 7 2 3 4 5 -3 7

Bài 10. Xây dựng mảng (MARRAY.CPP)


Cho 1 dãy số gồm 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 .
Yêu cầu: Hãy xây dựng dãy 𝑏1 , 𝑏2 , … , 𝑏𝑛 như sau:
• 𝑏1 = 𝑎1
• 𝑏2 là giá trị lớn nhất trong các phần tử 𝑎1 , 𝑎2 .
• 𝑏3 là giá trị lớn nhất trong các phần tử 𝑎1 , 𝑎2 , 𝑎3
• 𝑏𝑖 là giá trị lớn nhất trong các phần tử 𝑎1 , 𝑎2 , . . , 𝑎𝑖
Dữ liệu: Vào từ thiết bị nhập chuẩn gồm:
• Dòng đầu gồm số nguyên dương 𝑛 (𝑛 ≤ 100.000).
• Dòng tiếp theo chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 109 ).
Kết quả: Ghi ra màn hình dãy số 𝑏1 , 𝑏2 , … , 𝑏𝑛 theo cách xây dựng ở trên.
Ví dụ:

Sample Input Sample Output


8 17777999
17234937

Bài 11. GIÁ TRỊ KHÁC NHAU (DVALUES.*)


Cho dãy số nguyên 𝐴 = (𝑎0 , 𝑎1 , . . , 𝑎𝑛−1 ), hãy liệt kê các giá trị có mặt trong dãy 𝐴, mỗi giá trị chỉ
liệt kê một lần.
Dữ liệu: Vào từ thiết bị nhập chuẩn:
⚫ Dòng 1 chứa số nguyên dương 𝑛 ≤ 106
⚫ Dòng 2 chứa 𝑛 số nguyên 𝑎0 , 𝑎1 , . . , 𝑎𝑛−1 cách nhau bởi dấu cách (∀𝑖:|𝑎𝑖|≤1000)
Kết quả: Ghi ra thiết bị xuất chuẩn một dòng gồm các giá trị có mặt trong 𝐴 xếp theo thứ tự giảm
dần, các giá trị ghi cách nhau bởi dấu cách
Ví dụ:

Sample Input Sample Output


8 4321

12234134

Bài 12. CẶP SỐ BẰNG NHAU (PAIRS.*)


Cho dãy số nguyên 𝐴 = (𝑎0 , 𝑎1 , … , 𝑎𝑛 ) hãy cho biết có bao nhiêu cặp chỉ số (𝑖, 𝑗) trong đó 𝑖<𝑗 và 𝑎𝑖 =
𝑎𝑗
Dữ liệu: Vào từ thiết bị nhập chuẩn:
• Dòng 1 chứa số nguyên dương 𝑛 ≤ 106
• Dòng 2 chứa 𝑛 số nguyên 𝑎0 , 𝑎1 , … , 𝑎𝑛 cách nhau bởi dấu cách (∀𝑖: |𝑎𝑖 | ≤ 1000)

Kết quả: Ghi ra thiết bị xuất chuẩn số cặp chỉ số (𝑖, 𝑗) thỏa mãn 𝑖<𝑗 và 𝑎𝑖 = 𝑎𝑗
Ví dụ:

Sample Input Sample Output


8 4

12234134

Bài 13. CẶP SỐ (DPAIRS.*)


Cho dãy số nguyên 𝐴 = (𝑎0 , 𝑎1 , … , 𝑎𝑛 ) và một số nguyên 𝑘 hãy cho biết có bao nhiêu cặp chỉ
số (𝑖, 𝑗) trong đó 𝑖≠𝑗 và 𝑎𝑖 − 𝑎𝑗 = 𝑘

Dữ liệu: Vào từ thiết bị nhập chuẩn:

• Dòng 1 chứa hai số nguyên 𝑛, 𝑘 cách nhau bởi dấu cách (1 ≤ 𝑛 ≤ 106 ; |𝑘| ≤ 1000)
• Dòng 2 chứa 𝑛 số nguyên 𝑎0 , 𝑎1 , … , 𝑎𝑛 cách nhau bởi dấu cách (∀𝑖:|𝑎𝑖|≤1000)
Kết quả: Ghi ra thiết bị xuất chuẩn số cặp chỉ số (𝑖, 𝑗) thỏa mãn 𝑖≠𝑗 và 𝑎𝑖 − 𝑎𝑗 = 𝑘

Ví dụ:

Sample Input Sample Output


54 3

15626

50 20
00000

Bài 14. TRỘN (MERGE.*)


Cho dãy hai số nguyên đã xếp theo thứ tự không giảm (tăng dần):
𝐴 = (𝑎1 ≤ 𝑎2 ≤ ⋯ ≤ 𝑎𝑚 )
𝐵 = (𝑏1 ≤ 𝑏2 ≤ ⋯ ≤ 𝑏𝑛 )
Người ta nối hai dãy 𝐴, 𝐵, sau đó sắp xếp lại các phần tử theo thứ tự không giảm để được
dãy 𝐶:
𝑐1 ≤ 𝑐2 ≤ ⋯ ≤ 𝑐𝑚+𝑛
Yêu cầu: Hãy cho biết dãy 𝐶
Dữ liệu: Vào từ thiết bị nhập chuẩn
• Dòng 1 chứa hai số nguyên dương 𝑚, 𝑛 ≤ 105
• Dòng 2 chứa 𝑚 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑚 xếp theo thứ tự tăng dần cách nhau bởi dấu
cách.
• (∀𝑖: |𝑎𝑖 | ≤ 109 )
• Dòng 3 chứa 𝑛 số nguyên 𝑏1 , 𝑏2 , … , 𝑏𝑛 xếp theo thứ tự tăng dần cách nhau bởi dấu
cách.
(∀𝑗: |𝑏𝑗 | ≤ 109 )

Kết quả: Ghi ra thiết bị xuất chuẩn một dòng là các phần tử trong dãy 𝐶 xếp theo thứ tự
tăng dần cách nhau bởi dấu cách.
Ví dụ:

Sample Input Sample Output


54 123355669

12566

3359

53 00000123

00000

123
Bài 15. NỐI ĐIỂM ĐEN TRẮNG (BWPOINTS.CPP)
Trên trục số thực cho 𝑛 điểm đen và n điểm trắng hoàn toàn phân biệt. Các điểm đen có toạ
độ nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 còn các điểm trắng có toạ độ nguyên 𝑏1 , 𝑏2 , … , 𝑏𝑛 . Người ta muốn
chọn ra 𝑘 điểm đen và 𝑘 điểm trắng để nối mỗi một điểm đen với một điểm trắng sao cho 𝑘
đoạn thẳng tạo được đôi một không có điểm chung.
Yêu cầu: Cho toạ độ của 𝑛 điểm đen và toạ độ của n điểm trắng, hãy tìm giá trị 𝑘 lớn nhất
thoả mãn yêu cầu nêu trên.
Dữ liệu: Vào từ thiết bị nhập chuẩn:
⚫ Dòng thứ nhất chứa số nguyên dương 𝑛 ≤ 105
⚫ Dòng thứ hai chứa các số 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 109 , 𝑖 = 1,2, … , 𝑛)
⚫ Dòng thứ ba chứa các số 𝑏1 , 𝑏2 , … , 𝑏𝑛 (|𝑏𝑖 | ≤ 109 , 𝑖 = 1,2, … , 𝑛)
Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất là số 𝑘 lớn nhất tìm được.
Ví dụ
BWPOINTS.INP BWPOINTS.OUT

3 2

0 3 1
-3 -2 -1 0 1 2 3 4 5
-3 5 -1

You might also like