Hướng dẫn cho HackDream Green 04-C: Con mèo và cục len
Chỉ sử dụng khi thực sự cần thiết như một cách tôn trọng tác giả và người viết hướng dẫn này.
Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.
Chép code từ bài hướng dẫn để nộp bài là hành vi có thể dẫn đến khóa tài khoản.
Subtask 1:
Sử dụng một vòng lặp để kiểm soát vị trí di chuyển của cục len sau mỗi giây cho đến ~k~ giây.
Độ phức tạp: ~O(k)~.
Subtask 2:
Nhận thấy rằng từ thời điểm bắt đầu, sẽ mất ~n-1~ giây để cục len lăn tới con mèo cuối cùng bên phải (vị trí ~n~) và sau đó ~n-1~ tiếp theo cục len lại lăn về con mèo đầu tiên bên trái (khởi điểm, vị trí ~1~).
Vậy chu kỳ của một lần lăn là ~2*(n-1)~ giây. Thay vì tính toán k giây, ta chỉ cần tính vị trí cục len sau ~x = k~ mod ~((n-1)*2)~ giây.
Từ đây xét 2 trường hợp:
- Nếu ~x <= n-1~, cục len sẽ nằm ở trên đường đi từ trái sang phải.
- Ngược lại, cục len đang trên đường lăn từ phải sang trái đi về con mèo đầu tiên.
Độ phức tạp: ~O(1)~.
Bình luận