python010

Bộ đề bài

1. Ghép hình vuông

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Hình vuông

Bố tặng Dino rất nhiều khối hình vuông cơ bản kích thước 1 × 1.

Hiện Dino đang xếp được 4 cột liên tiếp, mỗi cột gồm a, b, c, d hình vuông cơ bản chồng lên nhau.

Hỏi cần xếp thêm ít nhất bao nhiêu hình vuông cơ bản nữa vào các khối đã xếp để tạo thành một hình vuông?

Yêu cầu

  • Tìm số lượng tối thiểu hình vuông cơ bản cần thêm vào để tạo thành một hình vuông.

Dữ liệu nhập vào từ bàn phím

Gồm 4 dòng, mỗi dòng chứa một số nguyên dương: a, b, c, d

  • \(1 \le a, b, c, d \le 100\)

Kết quả ghi ra màn hình

  • Một số tự nhiên là số hình vuông cơ bản cần thêm.

Ví dụ

Dữ liệu Kết quả Giải thích
1
3
6
2
24 Cần thêm để mỗi cột có 6 hình vuông cơ bản: (6−1)+(6−3)+(6−6)+(6−2)=12.
Cần thêm 2 cột mới cao 6 tầng: 2×6=12.
Tổng cần thêm: 12+12=24

2. Xây nhà

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Xây nhà

Trên một con đường có N lô đất, mỗi lô sẽ được xây một tòa nhà, đánh số từ 1 đến N từ trái sang phải.

Chính quyền muốn xây một tòa nhà chọc trời tại vị trí k với độ cao h tầng.

Các tòa nhà còn lại cần được xây với độ cao thấp nhất có thể, sao cho:

  • Mỗi tòa nhà có ít nhất 1 tầng.
  • Hai tòa nhà liền kề có độ chênh lệch không quá d tầng.
  • Vẫn phải đảm bảo tòa nhà thứ k cao đúng h tầng.

Yêu cầu

  • Tính tổng số tầng tối thiểu cần xây cho cả N tòa nhà.

Dữ liệu nhập vào từ bàn phím

Gồm 4 dòng, mỗi dòng là một số nguyên dương:

  • Dòng 1: N là số tòa nhà (1 ≤ N ≤ 10⁷)
  • Dòng 2: k là vị trí tòa nhà chọc trời (1 ≤ k ≤ N)
  • Dòng 3: h là chiều cao của tòa nhà thứ k (1 ≤ h ≤ 10⁸)
  • Dòng 4: d là chênh lệch tối đa giữa 2 nhà liền kề (1 ≤ d ≤ h)

Kết quả ghi ra màn hình

  • Một dòng duy nhất ghi tổng số tầng tối thiểu cần xây cho N tòa nhà.

Chấm điểm

  • Subtask 1 (30 điểm): N ≤ 100
  • Subtask 2 (30 điểm): d = 1
  • Subtask 3 (40 điểm): Không giới hạn gì thêm.

Ví dụ

Input Output Giải thích
6
2
3
1
10 Các tòa nhà từ trái sang: 2 3 2 1 1 1 → tổng số khối cần xây = 10
5
3
6
2
18 Các tầng từ trái sang: 2 4 6 4 2 → tổng = 18

Hình minh họa ví dụ 1

3. Xóa số

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Xóa số

Cho N số tự nhiên từ 1 đến N được đặt lần lượt trên một vòng tròn (số thứ N kề với số 1).

Người ta thực hiện xóa lần lượt các số khỏi vòng tròn theo quy tắc:

  • Bắt đầu từ số X, xóa số đó khỏi vòng tròn.
  • Mỗi lượt tiếp theo, đếm K bước theo chiều kim đồng hồ (bỏ qua số đã xóa), xóa số thứ K.
  • Lặp lại cho đến khi vòng tròn rỗng.

Giả sử với N = 5 bắt đầu xóa ở vị trí X = 2, chu kì K = 3 thì các bước xóa lần lượt như sau:

Yêu cầu

  • Tìm vị trí lượt xóa (thứ mấy) của số M trong quá trình mô phỏng xóa trên vòng tròn.

Dữ liệu nhập vào từ bàn phím

Gồm 4 dòng:

  • Dòng 1: Số nguyên N là số lượng số ban đầu trên vòng tròn (1 ≤ N ≤ 10^5)
  • Dòng 2: Số nguyên X là vị trí bắt đầu (1 ≤ X ≤ N)
  • Dòng 3: Số nguyên K là bước đếm (1 ≤ K ≤ N)
  • Dòng 4: Số nguyên M là số cần theo dõi (1 ≤ M ≤ N)

Chấm điểm

  • Subtask 1 (30 điểm): N, K < 100
  • Subtask 2 (30 điểm): N, K ≤ 10000
  • Subtask 3 (40 điểm): N, K ≤ 100000

Kết quả ghi ra màn hình

  • Một dòng duy nhất ghi số thứ tự lượt xóa của số M. Nếu không bị xóa thì in ra 0.

Ví dụ

Input Output Giải thích
4
2
2
3
3 Dãy ban đầu: [1,2,3,4] → lượt 1 xóa 2 → còn [1,3,4] → lượt 2 xóa 4 → còn [1,3] → lượt 3 xóa 3
6
3
4
4
6 Dãy ban đầu: [1,2,3,4,5,6] → theo thứ tự xóa: 3,1,6,2,5,4 → 4 bị xóa ở lượt 6

4. Tìm chữ số

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Tìm chữ số

Hãy viết liên tiếp các số tự nhiên chia hết cho 3 (theo thứ tự tăng dần), và nối các số đó theo thứ tự lại thành một số mới:

3691215182124...

Hỏi: chữ số thứ N trong số ghép trên là số nào?

Dữ liệu nhập vào từ bàn phím

  • Một dòng duy nhất chứa một số tự nhiên N (1 ≤ N ≤ 10^12).

Kết quả ghi ra màn hình

  • Một số tự nhiên là chữ số thứ N trong số ghép được tạo ra.

Chấm điểm

  • 60% số test ứng với 60% số điểm có N ≤ 10^3.
  • 40% số test còn lại ứng với 40% số điểm không có ràng buộc gì thêm.

Ví dụ

Input Output
4 1

5. Chia hết cho 3

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Chia hết cho 3

Cho một số tự nhiên N chỉ gồm các chữ số từ 1 đến 9.

Hãy tìm cách xóa một số chữ số trong N (có thể không xóa chữ số nào), sao cho số còn lại chia hết cho 3có giá trị lớn nhất có thể.

Yêu cầu

  • Đưa ra số lớn nhất có thể tạo thành từ Nchia hết cho 3 bằng cách xóa một số chữ số (hoặc không xóa chữ số nào).

Dữ liệu nhập vào từ bàn phím

  • Một dòng duy nhất chứa số tự nhiên N (có số chữ số không quá 10⁴).
  • Lưu ý: Các chữ số trong N chỉ nằm trong khoảng từ 1 đến 9, không có chữ số 0.

Kết quả ghi ra màn hình

  • Một dòng ghi số lớn nhất chia hết cho 3 theo yêu cầu. Nếu không thể tạo được số nào chia hết cho 3 thì in ra 0.

Chấm điểm

  • Subtask 1 (30 điểm): chỉ gồm các chữ số 1, 2, 3.
  • Subtask 2 (30 điểm): Độ dài của N không quá 100 chữ số.
  • Subtask 3 (40 điểm): Không giới hạn gì thêm.

Ví dụ

Dữ liệu Kết quả Giải thích
232 3 Xóa hai chữ số 2, còn lại 3 là số chia hết cho 3 lớn nhất
369 369 Đã chia hết cho 3 → giữ nguyên là số lớn nhất
25 0 Không có cách nào để tạo thành số chia hết cho 3