Tra cứu ngày đạt mốc bước chân trên ứng dụng sức khoẻ
Thang điểm 10 · 6 test case chấm tự động · 3 tiêu chí chấm
Cho dãy A gồm n số nguyên là số bước chân đo được trong n ngày, dãy đã được sắp xếp tăng dần (có thể có nhiều ngày trùng số bước chân). Cho số nguyên K là mốc mục tiêu bước chân. Em hãy viết chương trình tìm ra tất cả các ngày (đếm từ 1) có số bước chân đúng bằng K.
Gợi ý thiết kế thuật toán: dùng tìm kiếm nhị phân để tìm nhanh một vị trí bất kì có giá trị bằng K trong O(log n) bước; sau đó vì dãy đã sắp xếp nên các phần tử bằng K (nếu có nhiều) sẽ nằm liền kề nhau — mở rộng sang bên trái và bên phải từ vị trí vừa tìm được để thu thập đủ tất cả các ngày đạt mốc.
Định dạng vào: dòng 1 là số nguyên n; dòng 2 gồm n số nguyên tăng dần cách nhau bởi khoảng trắng (số bước chân từng ngày); dòng 3 là số nguyên K.
Định dạng ra: in ra các số thứ tự ngày (đếm từ 1) đạt đúng mốc K theo thứ tự tăng dần, cách nhau bởi một khoảng trắng, trên một dòng; nếu không có ngày nào đạt mốc thì in ra Không đạt mốc.
| Input | Output | Giải thích |
|---|---|---|
| 12 3000 4500 4500 5000 5200 6000 6000 6000 7000 7500 8000 9000 6000 | 6 7 8 | Ba ngày liền nhau (chỉ số 5,6,7 tính từ 0, tức ngày 6,7,8) có đúng 6000 bước |
| 12 3000 4500 4500 5000 5200 6000 6000 6000 7000 7500 8000 9000 9999 | Không đạt mốc | Không có ngày nào đạt đúng 9999 bước |
Giáo viên giao bài này cho lớp, học sinh nộp bài trực tuyến và được chấm tự động.
Giáo viên đăng nhập để giao bàiBài tập khác lớp 11
- Ước lượng thời gian chấm điểm bài thi trắc nghiệm · Lập trình
- Đo đường chéo sân tập thể thao · Lập trình
- Chồng sách trên bàn học · Lập trình
- Thống kê quãng đường chạy bộ của CLB · Lập trình
- Đếm số cách đóng gói đều sản phẩm · Lập trình
- Theo dõi số bước chân của nhóm tập luyện · Lập trình