Thời gian làm bài: 120 phút, 20 giờ 00 đến 22 giờ 00 ngày 25 tháng 12 năm 2023.
Tổng quan đề thi
STT | Tên bài | Mã bài | Thời gian | Bộ nhớ | Điểm |
---|---|---|---|---|---|
1 | Cặp số nguyên tố tương đồng | CSNTTD |
1 giây | 256 MB | 5 |
2 | Dãy số | DAYSO |
1 giây | 256 MB | 5 |
3 | Ăn trưa | ANTRUA |
1 giây | 256 MB | 5 |
4 | Số bộ K | SOBOK |
1 giây | 256 MB | 5 |
Lưu ý:
- Các đội nộp bài trên hệ thống TLEOJ. Contest sẽ được mở lúc 22 giờ 00 của ngày thi và sẽ kết thúc vào lúc 22 giờ 05 cùng ngày.
- Với mỗi bài tập, các bạn được nộp tối đa một lần.
- Tất cả các bài đều nhập xuất qua file. File dữ liệu đầu vào có tên là
<mã bài>.inp
và file dữ liệu đầu ra có tên là<mã bài>.out
, ví dụ như bài có mã làEQSTR
thì sẽ có các file làEQSTR.inp
vàEQSTR.out
. - Bài thi chỉ được chấm bởi một trong ba ngôn ngữ: C++ (C++11), Pascal và Python (Python 3).
- Tất cả các bài nộp đều không được phép dùng các từ khóa như
#pragma
,optimize
.
--- Happy coding ---
Cặp số nguyên tố tương đồng (CSNNTD)
Thời gian | Bộ nhớ | Input | Output |
---|---|---|---|
1 giây | 256 megabytes | CSNTTD.inp |
CSNTTD.out |
Bạn An rất yêu thích toán học, đặc biệt là số nguyên tố. Một ngày nọ, trong lúc giải một bài toán về số nguyên tố, An nhận ra có nhiều cặp số nguyên tố có tổng các chữ số của chúng bằng nhau và An gọi những cặp số như thế là cặp số nguyên tố tương đồng. Ví dụ, cặp số 151 và 601 là cặp số tương đồng vì cả hai đều có tổng các chữ số là 1+5+1=6+0+1=7.
Yêu cầu: Cho hai số nguyên dương L,R. Hãy giúp An tìm xem cặp số nguyên tố tương đồng có giá trị trong đoạn từ L tới R và hiệu hai số là lớn nhất.
Input, Output và Subtask
Input: Nhập từ file CSNTTD.inp
- Một dòng duy nhất gồm hai số nguyên dương L, R (1 \le L \le R \le 10^7).
Output: Xuất ra file CSNTTD.out
- Một số nguyên gồm hiệu lớn nhất tìm được. Nếu không tồn tại cặp số in ra 0.
Subtask
- Subtask 1 (50\%): 1 \le L \le R \le 1000.
- Subtask 2 (50\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (CSNTTD.inp
)
30 100
Output (CSNTTD.out
)
36
Notes
Cặp số cần tìm là 37 và 73.
Dãy số (DAYSO)
Thời gian | Bộ nhớ | Input | Output |
---|---|---|---|
1 giây | 256 megabytes | DAYSO.inp |
DAYSO.out |
Cho dãy số gồm N số nguyên a_1,a_2,…,a_N và hai số nguyên không âm L,R (L≤R). Đếm số cặp (i,j) thỏa mãn 1≤i≤j≤N và L≤|a_i+a_{i+1}+⋯+a_j |≤R.
Input, Output và Subtask
Input: Nhập từ file DAYSO.inp
- Dòng đầu tiên chứa 3 số nguyên N,L,R (1 ≤N≤10^5,0≤L≤R≤10^9 ).
- Dòng thứ hai ghi N số nguyên a_1,a_2,…,a_N (|a_i |≤10^9 ).
Output: Xuất ra file DAYSO.out
- Một dòng duy nhất chứa số cặp chỉ số (i,j) tìm được.
Subtask
- Subtask 1 (25\%): 1 \le N \le 100.
- Subtask 2 (25\%): 1 \le N \le 1000.
- Subtask 3 (50\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (DAYSO.inp
)
3 0 1
1 -1 2
Output (DAYSO.out
)
4
Notes
Các cặp thỏa mãn là (1,1),(1,2),(2,2),(2,3).
Ăn trưa (ANTRUA)
Thời gian | Bộ nhớ | Input | Output |
---|---|---|---|
1 giây | 256 megabytes | ANTRUA.inp |
ANTRUA.out |
Trường mầm non Super Kid có nhiều bé code rất nhanh nhưng ăn rất chậm. Trong giờ ăn trưa, có N bé ngồi quanh một bàn tròn, các bé được đánh số từ 1 tới N theo chiều kim đồng hồ. Xuất phát từ một vị trí của 1 bé, cô giáo phải đi một vòng quanh bàn theo chiều kim đồng hồ để múc đồ ăn cho từng bé. Khi đến vị trí 1 bé, cô chuẩn bị đồ ăn hết X (giây), và bé đó bắt đầu ăn ngay trong khi cô chuyển sang chuẩn bị đồ ăn cho bé kế tiếp theo chiều kim dồng hồ…, thời gian di chuyển của cô coi như không đáng kể.
Do biết rõ tốc độ ăn của từng bé, cô có thể uớc luợng chính xác rằng bé thứ i sau khi được cô chuẩn bị đồ ăn sẽ cần dúng a_i giây để ăn xong phần ăn của mình (∀i = 1,2,… ,n). Vấn đề là cô muốn kết thúc bữa ăn trưa càng sớm càng tốt, muốn vậy, việc chọn bé nào để chuẩn bị đồ ăn đầu tiên phải đuợc tính toán kỹ luỡng.
Yêu cầu: Bạn duợc cho biết số N, giá trị X, dãy A = (a_1,a_2,…,a_n). Hãy giúp cô giáo chọn vị trí xuất phát sao cho thời gian từ lúc bắt đầu buổi ăn trưa tới khi tất cả các học sinh ăn xong là nhỏ nhất.
Ðể tránh việc phải đọc một luợng dữ liệu quá lớn, dãy A sẽ duợc cho bởi ba số nguyên duong P,Q,M trong dó mỗi phần tử a_i được xác dịnh theo công thức:
Input, Output và Subtask
Input: Nhập từ file ANTRUA.inp
- Dòng đầu tiên gồm hai số nguyên dương N,X (1 \le N≤5×10^6,1\le X≤10^9 ).
- Dòng tiếp theo gồm ba số nguyên dương P,Q,M (P,Q,M≤10^9 ).
Output: Xuất ra file ANTRUA.out
- Ghi một số nguyên duy nhất là thời gian tính bằng giây từ lúc bắt đầu buổi ăn trưa đén lúc tất cả các bé ăn xong.
Subtask
- Subtask 1 (40\%): 1 \le N \le 1000.
- Subtask 2 (30\%): 1 \le N \le 10^5.
- Subtask 3 (30\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (ANTRUA.inp
)
5 3
2 1 9
Output (ANTRUA.out
)
18
Notes
Giải thích: X=3; Dãy A=(3,5,7,9,2).
Phương án tối ưu: cô bắt dầu với bé thứ 2, thời điểm ăn xong của từng bé như sau:
- Bé thứ 2: 3 + 5 = 8
- Bé thứ 3: 6 + 7 = 13
- Bé thứ 4: 9 + 9 = 18
- Bé thứ 5: 12 + 2 = 14
- Bé thứ 1: 15 + 3 = 18
Số bộ K (SOBOK)
Thời gian | Bộ nhớ | Input | Output |
---|---|---|---|
1 giây | 256 megabytes | SOBOK.inp |
SOBOK.out |
Ưóc số và bội số là một trong những khái niệm quen thuộc trong Số học. Với hai số nguyên A,B bất kỳ nếu A chia hết cho B ta gọi B là ước số của A và A là bội số của B. Với một bộ k số nguyên dương a_1,a_2,…,a_k bất kỳ, ước số chung lớn nhất của chúng là số nguyên dương X lớn nhất thòa mãn mọi a_i là bội của X. Tương tự, bội số chung nhỏ nhất của chúng là số nguyên dương nhỏ nhất Y sao cho Y chia hết cho mọi số a_i.
Cho hai số nguyên P và Q được viết dưới dạng tích các số nguyên dương (P=p_1×p_2×…×p_N,Q=q_1×q_2,…,q_M ). Đếm số bộ K số nguyên dương có ước chung lớn nhất là P và bội chung nhỏ nhất là Q.
Input, Output và Subtask
Input: Nhập từ file SOBOK.inp
- Dòng đầu tiên gồm ba số nguyên dương N,M,K (1≤N,M≤10^6,K≤10^9 ).
- Dòng thứ hai gồm N số nguyên dương p_1,p_2,…,p_N (1≤p_i≤10^6 ).
- Dòng thứ ba gồm M số nguyên dương q_1,q_2,…,q_M (1≤q_i≤10^6 ).
Output: Xuất ra file SOBOK.out
- Một dòng duy nhất gồm số bộ thỏa mãn. Do kết quả có thể rất lớn nên chỉ cần in ra phần dư của kết quả khi chia cho 10^9+9.
Subtask
- Subtask 1 (10\%): N = M = K = 1.
- Subtask 2 (25\%): P, Q \le 10^6, K = 2.
- Subtask 3 (25\%): N, M \le 5000, K = 2.
- Subtask 4 (25\%): K = 2.
- Subtask 5 (15\%): Không có giới hạn gì thêm.
Sample
Sample 1
Input (SOBOK.inp
)
1 2 2
1
2 3
Output (SOBOK.out
)
4
Notes
P=1,Q=6, 4 bộ 2 số thỏa điều kiện là (1,6),(2,3),(3,2),(6,1).
Sample 2
Input (SOBOK.inp
)
1 2 10
2
2 3
Output (SOBOK.out
)
1022
Sample 3
Input (SOBOK.inp
)
2 1 5060162
22 7
1997
Output (SOBOK.out
)
0
Notes
P=154,Q=1997. Do Q không chia hết cho P nên dễ thấy không tồn tại bộ số nào thỏa mãn.
Bình luận