Professional Documents
Culture Documents
MỘT SỐ BÀI TẬP ÔN LUYỆN
MỘT SỐ BÀI TẬP ÔN LUYỆN
1 - Khuyến mại
Nhà sách đang có chương trình khuyến mại "Mua ba cuốn sách, chỉ tính tiền hai cuốn đắt
nhất".
An đang muốn mua n cuốn sách. Hãy giúp bạn ấy mua với số tiền ít nhất có thể bằng cách tận
dụng chương trình khuyến mãi trên.
Ví dụ, với n=4 cuốn sách có giá lần lượt là: (5, 1, 3, 2) thì An sẽ phải trả số tiền ít nhất là 9 bằng
cách mua ba cuốn (5, 3, 2) với giá là 8 sau đó mua nốt cuốn sách (1).
Input
Dòng 1: ghi số nguyên n (1≤n≤100.000), số lượng sách An cần mua;
Tiếp theo là n dòng, mỗi dòng ghi một số nguyên Ci (1≤ Ci ≤100.000), ứng với giá của các cuốn
sách.
Output
Một số nguyên duy nhất là kết quả của bài toán
2 - Góc phần tư
Một trong những vấn đề phổ biến trong toán học là xác định một điểm thuộc góc phần tư nào.
Có bốn góc phần tư được đánh số từ 1 đến 4, như hình dưới đây:
Trong hình, điểm A có tọa độ (12, 5) thuộc góc phần tư thứ 1, còn điểm B thuộc góc phần tư thứ
2.
Cho tọa độ của một điểm, hãy xác định xem điểm này thuộc góc phần tư thứ mấy. Biết rằng cả
tung độ và hoành độ của điểm đã cho đảm bảo khác 0.
Input
- Dòng 1 ghi số nguyên x (-1000≤x≤1000; x!=0).
- Dòng 2 ghi số nguyên y (-1000≤y≤1000; y!=0).
Output
Ghi ra số (1, 2, 3 hoặc 4) mô tả góc phần tư chứa điểm có tọa độ (x, y).
FizzBuzz là một trò chơi chữ nhóm dành cho trẻ em để dạy chúng về phép chia. Điều này có
thể đúng hoặc có thể không đúng, nhưng câu hỏi này thường được sử dụng để làm khó các sinh
viên tốt nghiệp ngành khoa học máy tính trẻ tuổi trong các cuộc phỏng vấn lập trình.
Về cơ bản, đây là cách hoạt động: bạn in các số nguyên từ 1 đến N, thay thế bất kỳ số nguyên
nào trong số chúng chia hết cho X bằng Fizz hoặc, nếu chúng chia hết cho Y, bằng Buzz. Nếu số
chia hết cho cả X và Y, bạn in FizzBuzz để thay thế.
Đầu vào
Đầu vào chứa một trường hợp thử nghiệm duy nhất. Mỗi trường hợp thử nghiệm chứa ba số
nguyên trên một dòng, X, Y và N (1≤X <Y≤N≤100).
Đầu ra
In các số nguyên từ 1 đến N theo thứ tự, mỗi số trên dòng riêng, thay các số chia hết cho X
bằng Fizz, các số chia hết cho Y bằng Buzz và các số chia hết cho X và Y bằng FizzBuzz.
6 - Mạng Internet
Bờm đã kí hợp đồng với nhà cung cấp mạng Internet của mình. Nhà cung cấp sẽ cho Bờm sử
dụng X megabytes để lướt Web mỗi tháng. Mỗi Megabye không sử dụng hết của tháng này sẽ
được cộng dồn sang tháng tiếp theo.
Bạn được biết mức sử dụng dữ liệu trong N tháng đầu tiên của Bờm, hãy cho biết số
Megabytes mà Bờm được phép sử dụng trong tháng thứ N + 1.
Input
Dòng 1: ghi số nguyên X (1 ≤ X ≤ 100).
Dòng 2: ghi số nguyên N (1 ≤ N ≤ 100).
Tiếp theo là N dòng, mỗi dòng ghi một số nguyên Pi (0≤ Pi ≤ 10.000), là số Megabyte đã được
sử dụng trong N tháng đầu tiên. Các Pi sẽ không vượt quá số Megabyte mà Bờm được phép sử
dụng trong tháng đó (tính cả số Megabyte được cộng dồn).
Output
Một số nguyên duy nhất là kết quả tìm được.
7 - Tráo bóng
Trên bàn đang đặt ba chiếc cốc úp ngược tại các vị trí được đánh số từ 1 đến 3 theo hướng từ
trái sang phải. Ban đầu, có một đồng xu được đặt ở cốc ngoài cùng bên trái. Người ta sẽ thực hiện
một chuỗi các thao tác hoán đổi hai chiếc cốc như mô tả dưới đây:
Hãy cho biết sau chuỗi thao tác, đồng xu đang nằm ở vị trí số mấy.
Input
Dòng 1: ghi xâu không quá 50 kí tự mô tả chuỗi thao tác chỉ gồm các chữ cái ‘A’, ‘B’ hoặc
‘C’.
Output
Một số nguyên duy nhất mô tả vị trí của đồng xu sau chuỗi thao tác: 1 nếu nó ở vị trí ngoài
cùng bên trái, 2 nếu nó ở vị trí giữa hoặc 3 nếu nó ở vị trí ngoài cùng bên phải.
AB 3 CBABCACCC 1
CBABC 3 CBABCCBABCCBABCCBABCCBABCCCCCBABCABAA 2
8 - Đặt phòng
Bờm được Phú ông giao cho đặt phòng ở một khách sạn có r phòng, được đánh số từ 1 đến r.
Đến nơi, Bờm nhìn thấy danh sách gồm n phòng đã có người đặt trước. Nhiệm vụ của bạn là giúp
Bờm tìm một phòng trống hoặc báo cáo lại cho Phú ông là đến quá muộn, đã hết phòng.
Input
Dòng 1: ghi hai số nguyên r và n (1 ≤ r ≤ 100; 0 ≤ n ≤ r).
Tiếp theo là n dòng, mỗi dòng ghi một số nguyên phân biệt nằm trong khoảng từ 1 đến r mô tả
các phòng đã có người đặt.
Output
Nếu còn phòng trống, ghi số một phòng trống bất kì. Nếu không còn phòng để đặt, ghi “too
late”.
Input 1 Output 1 Input 2 Output 2
100 5 23 33 too late
42 2
3 3
2 1
99
1
Input 1 Output 1
7 7
8 8
10 10
13 13
15 19
19 20
20 23
23
25
Bạn sẽ phải trả lời q truy vấn. Truy vấn thứ i gồm hai số nguyên xi, yi yêu cầu cho biết số
nguyên ghi ở ô có tọa độ xi, yi là bao nhiêu?
Input
Dòng 1: ghi hai số nguyên n và q (1≤ n ≤ 109, 1 ≤ q ≤ 105) - kích thước của bảng và số truy vấn
cần trả lời.
Tiếp theo là q dòng. Dòng thứ i ghi hai số nguyên xi, yi (1 ≤ xi, yi ≤ n) - mô tả truy vấn thứ i.
Output
Ghi trên q dòng, mỗi dòng gồm một số nguyên là câu trả lời cho truy vấn tương ứng.
Input Output
45 1
11 8
44 16
43 13
32 4
24
13 - Điểm nằm trong HCN
Trong mặt phẳng tọa độ Oxy, cho hình chữ nhật được xác định bởi hai số nguyên n và d có tọa
độ bốn đỉnh tương ứng là (0, d), (d, 0), (n, n - d), (n−d, n).
Cho tọa độ của m điểm, điểm thứ i có tọa độ (xi, yi). Với mỗi điểm đã cho, hãy xác định xem
nó nằm trong hình chữ nhật (bao gồm cả nằm trên cạnh) hay nằm ngoài hình chữ nhật.
Input
Dòng 1: ghi hai số nguyên n và d (1≤d<n≤100).
Dòng 2: ghi một số nguyên m (1≤m≤100).
Tiếp theo là m dòng, dòng thứ i ghi hai số nguyên xi, yi (0≤xi, yi≤n).
Output
Ghi trên m dòng. Dòng thứ i ghi "YES" nếu điểm thứ i nằm trong hình chữ nhật (bao gồm cả
viền). Ngược lại, ghi "NO".
Giải thích: Hình 1 ở trên minh họa cho ví dụ 1, điểm 1 (tọa độ (2, 4)) và điểm 4 (tọa độ (4, 5))
nằm trong hình chữ nhật. Hai điểm còn lại nằm ngoài hình chữ nhật.
Input 1 Output 1
72
4
24 YES
41 NO
63 NO
45 YES
Input 2 Output 2
87
4
44 YES
28 NO
81 YES
61 YES
14 - Cắt gạch
Bờm có một viên gạch hoa hình vuông có cạnh dài a centimet. Anh ấy đang cần phải lát nó
vào một vị trí cũng hình vuông nhưng độ dài cạnh là b centimet (b<a). Bờm quyết định sẽ cắt lại
viên gạch này để vừa với vị trí cần lát (xem hình minh họa phía dưới). Sau khi cắt, Bờm sẽ có hai
mảnh gạch một hình vuông có cạnh b cemtimet và một hình chữ L.
Phú ông đố Bờm biết diện tích của mảnh gạch hình chữ L có phải là một số nguyên tố hay
không. Hãy giúp Bờm trả lời câu hỏi của Phú ông nhé.
Input
Dòng 1: ghi số nguyên t (1≤t≤5) - là số truy vấn.
Tiếp theo là t dòng, dòng thứ i mô tả truy vấn thứ i gồm hai số nguyên a và b (1≤b<a≤1011) .
Output
Ghi trên t dòng, dòng thứ i tương ứng với câu trả lời cho truy vấn thứ i ghi "YES" nếu diện
tích mảnh gạch hình chữ L sau khi cắt có diện tích là một số nguyên tố, ngược lại ghi "NO".
Input Output
4
65 YES
16 13 NO
61690850361 24777622630 NO
34 33 YES
Giải thích: Hình dưới đây mô tả ví dụ thứ nhất. Phần gạch đỏ là mảnh hình chữ L sau khi cắt.
Diện tích của phần này là 62 - 52 = 36 - 25 = 11, là một số nguyên tố nên câu trả lời là "YES".
30 - Bài 2
Cho n điểm là (x1, y1),(x2, y2),…,(xn, yn) có tọa độ nguyên trên mặt phẳng Oxy.
Bạn cần vẽ một tam giác cân với hai cạnh với một đỉnh là gốc tọa độ, một đỉnh nằm trên
trục hoành, một đỉnh nằm trên trục tung sao cho diện tích là nhỏ nhất có thể mà vẫn chứa được tất
cả các điểm đã cho.
In ra chiều dài của cạnh nhỏ hơn trong tam giác vừa vẽ.
Input
Dòng 1: ghi số nguyên n (1 ≤ n ≤ 105).
Tiếp theo là n dòng, mỗi dòng ghi hai số nguyên xi và yi (1 ≤ xi, yi ≤ 109).
Output
Một số nguyên duy nhất là kết quả tìm được.
In 1 (ví dụ 1) Out1 In 2 (ví dụ 2) Out 2
3 3 4 4
11 11
12 12
21 21
22