Hội thi Tin học trẻ huyện Quế Võ, tỉnh Bắc Ninh năm 2023 - bảng C - Trung học phổ thông

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Đổi thời gian (THTC Quế Võ, Bắc Ninh 2023) 100 (p) 1.0s 512M
2 Xâu đối xứng (THTC Quế Võ, Bắc Ninh 2023) 100 (p) 1.0s 512M
3 Ghép số (THTC Quế Võ, Bắc Ninh 2023) 100 (p) 1.0s 512M
4 Sắp xếp (THTC Quế Võ, Bắc Ninh 2023) 100 (p) 1.0s 512M

1. Đổi thời gian (THTC Quế Võ, Bắc Ninh 2023)

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: TIME.inp Output: TIME.out

Đồng hồ điện tử có chế độ đếm giây cho biết \(n\) là số giây kể từ 0 giờ 0 phút 0 giây hoặc chế độ hiển thị giờ dưới dạng hh:mm:ss cho biết giờ, phút, giây ở thời điểm hiện tại.

Yêu cầu: Hãy viết các biểu thức để xác định hh, mm và ss dựa theo \(n\).

Input

  • Một dòng duy nhất chứa số nguyên không âm \(n\) (\(0 \leq n < 86 400\))

Output

  • Chứa thời điểm hiện theo định dạng hh:mm:ss.

Example

Test 1

Input (TIME.inp)
10000
Output (TIME.out)
02:46:40
Note

\(10000s = 7200 + 2760 + 40 = 2h + 46m + 40s\)

2. Xâu đối xứng (THTC Quế Võ, Bắc Ninh 2023)

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: PALIN.inp Output: PALIN.out

Xâu đối xứng là xâu đọc từ trái qua phải giống như xâu đọc từ phải qua trái.

Bạn có được "Phép thuật", với hai phép biến đổi:

  • Xóa một ký tự \(A\) và một ký tự \(B\) bất kỳ để biến thành một ký tự \(C\), rồi đặt vào cuối xâu
  • Hoán đổi ký tự của hai vị trí bất kỳ

Ví dụ:

  • Sử dụng phép biến đổi thứ nhất, xâu \(ABC\) có thể biến đổi thành xâu \(CC\)
  • Sử dụng phép biến đổi thứ hai, xâu \(ABC\) cũng có thể biến đổi thành xâu \(BAC\).

Yêu cầu: Cho xâu \(S\) chỉ gồm ba ký tự \(A,B,C\), bạn có thể biến đổi thành xâu đối xứng hay không?

Input

  • Một xâu ký tự \(S\) chỉ gồm ba ký tự \(A,B,C\) có độ dài không quá \(1 000\) ký tự.

Output

  • In ra chữ YES nếu có thể biến đổi xâu \(S\) thành xâu đối xứng, ngược lại in chữ NO.

Test 1

Input (PALIN.inp)
CCCB
Output (PALIN.out)
NO

Test 2

Input (PALIN.inp)
AAABBCB
Output (PALIN.out)
YES
Note

Đáp án là CCCC.

3. Ghép số (THTC Quế Võ, Bắc Ninh 2023)

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: MERGENUM.inp Output: MERGENUM.out

Cho hai số tự nhiên \(A\) và \(B\) sao cho mỗi số đều chỉ gồm các chữ số đôi một khác nhau. Lần lượt lấy các chữ số của \(A\) và \(B\) ghép lại để tạo thành số \(C\) sao cho:

  • Số chữ số của \(C\) bằng tổng số chữ số của \(A\) và \(B\);
  • Thứ tự các chữ số trong \(A\) không đổi;
  • Thứ tự các chữ số trong \(B\) không đổi;

Yêu cầu: Hãy tìm số \(C\) nhỏ nhất có thể ghép được.

Input

  • Nhập vào hai số tự nhiên \(A\) và \(B\). \((1 \le A \le B \le 10^{100000})\). Mỗi số được ghi trên một dòng.

Output

  • Đưa ra số \(C\) thỏa mãn đề bài.

Scoring

  • Subtask \(1\) (\(40\%\) số điểm): \(A, B \le 10^9\).
  • Subtask \(2\) (\(30\%\) số điểm): \(A, B \le 10^{1000}\).
  • Subtask \(3\) (\(30\%\) số điểm): \(A, B \le 10^{100000}\).

Example

Test 1

Input (MERGENUM.inp)
15
28
Output (MERGENUM.out)
1258
Note

Có thể ghép thành các số: \(1528,1258,1285,2815,2158,2185\). Số nhỏ nhất là \(1258\).

Test 1

Input (MERGENUM.inp)
12547
2469 
Output (MERGENUM.out)
122454679
Note

Có thể ghép thành các số khác nhau như: \(125472469,124692547,122469547,122454679, ...\). Số \(122454679\) là số nhỏ nhất thỏa mãn.

4. Sắp xếp (THTC Quế Võ, Bắc Ninh 2023)

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: MODK.inp Output: MODK.out

Cho dãy số tự nhiên liên tiếp: \(1;2;3;\dots;N\); và một số \(K\) là ước của \(N\). Người ta sắp xếp lại dãy số này theo số dư của các số hạng khi chia cho \(K\), cụ thể như sau:

  • Đoạn thứ nhất gồm tất cả các số chia hết cho \(K\)
  • Đoạn thứ hai gồm tất cả các sổ chia \(K\) dư 1
  • Đoạn thứ ba gồm tất cả các số chia \(K\) dư 2
  • \(\dots\)
  • Đoạn cuối cùng gồm tất cả các số chia \(K\) dư \(K\) - 1.

Các số hạng trong mỗi đoạn cũng được sắp xếp theo chiều tăng dần.

Ví dụ: Với \(N = 12\) và \(K = 4\), sau khi sắp xếp ta có dãy số sau: \(4; 8; 12; 1; 5; 9; 2; 6; 10; 3; 7; 11\)

Yêu cầu: Cho trước 3 số nguyên dương \(N; K; M\) (với \(K\) là ước của \(N\) và \(M < N\)). Tìm số hạng thứ \(M\) của dãy đã sắp xếp.

Input

  • 3 số nguyên dương \(N; K; M\) (\(N \le 10^{16}; K \le 10^9; K\) là ước của \(N; M < N\)) trên cùng một dòng, mỗi số cách nhau một dấu cách.

Output

  • Ghi ra số hạng thứ \(M\) của dãy số theo yêu cầu.

Scoring

  • Subtask 1 (20\% số điểm): \(N \le 10^2\).
  • Subtask 2 (30\% số điểm): \(10^2 < N \le 10^6\).
  • Subtask 3 (30\% số điểm): \(10^6 < N \le 10^9\).
  • Subtask 4 (20\% số điểm): \(10^9 < N \le 10^{16}\).

Example

Test 1

Input (MODK.inp)
12 4 6
Output (MODK.out)
9