Editorial for C Bài 3.C2: Tìm người chạy trước
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Lời giải chi tiết
Ý tưởng: Kiểm tra từng hiệu của 3 số b,c,d với a. Ta sẽ lấy số dương nhỏ nhất. Truy vết: Mỗi khi phát hiện hiệu mới nhỏ hơn hiệu hiện tại mà thỏa mãn đề bài, ta sử dụng một biến lưu lại người đó.
Các bước giải:
- Bước 1: Khai báo và nhập vào 4 số a,b,c,d.
- Bước 2: Khởi tạo 2 biến pos=0 và dist=−1 thể hiện người gần nhất trước mặt của An, và khoảng cách của người gần nhất trước mặt An (-1 là chưa có ai vượt An).
- Bước 3: Kiểm tra xem a có nhỏ hơn lần lượt b,c,d hay không. Nếu có thì tiếp tục kiểm tra điều kiện dist: Nếu dist=−1 thì chỉ có người đang xét hiện tại vượt An, do đó gán dist=c−a; Nếu dist>0 và dist< khoảng cách từ An đến người đang xét đến, thì gán lại dist mới và pos mới là người đang xét; trường hợp còn lại thì ta bỏ qua để xét đến người tiếp theo.
- Bước 4: In ra pos là người gần nhất vượt qua An.
Đăng ký khóa học: https://www.facebook.com/clblaptrinhfullhouse
SĐT liên hệ: 0372229686
Youtube: CLB Lập Trình Full House
Fullhouse dev đồng hành trên từng dòng code
Comments