ANT spoj – Kiến

Nguồn đề bài: http://vn.spoj.com/problems/ANT/vn/

1. Đề bài ANT spoj

Họ nhà kiến tổ chức một trò chơi như sau để mừng năm mới. Những chú kiến quây thành một vòng tròn. Kiến chúa sẽ đưa ra một con số và gọi nó là số M (Mồi). Bắt đầu, kiến chúa đếm số 1, theo chiều kim đồng hồ, các chú kiến lần lượt đếm số tiếp theo. Đến lượt chú kiến đếm phải số đúng bằng số M thì sẽ phải đi ra khỏi vòng tròn. Việc đếm lại từ 1 bắt đầu từ chú kiến tiếp theo, theo chiều kim đồng hồ.

Trò chơi kết thúc, khi chỉ còn lại một chú kiến. Chú kiến đó sẽ nhận được món qùa đầu năm của họ nhà kiến.

Biết số chú kiến ban đầu trên vòng tròn và số M. Hãy xác định số thứ tự của chú kiến sẽ nhận được phần thưởng may mắn. Các chú kiến được đánh số thứ tự theo chiều kim đồng hồ, bắt đầu từ kiến chúa có số hiệu 1.

Dữ liệu

  • Dòng 1: chứa số nguyên dương N, là số chú kiến trên vòng tròn.
  • Dòng 2: chứa số nguyên dương M.

Kết qủa

Gồm 1 dòng duy nhất, chứa số thứ tự của chú kiến sẽ nhận được món qùa đầu năm

Giới hạn

  • 1 ≤ N ≤ 1012.3 ≤ M ≤ 106.
  • M ≤ N.

Ví dụ

Dữ liệu
7
3

Kết quả
4

Giải thích 
Thứ tự những chú kiến phải ra khỏi vòng tròn lần lượt là: 3 6 2 7 5 1.
Chú kiến 4 là chú kiến may mắn!

2. Hướng dẫn ANT spoj

Tham khảo bài viết này: https://kienthuc24h.com/bai-toan-josephus-ai-se-la-nguoi-cuoi-cung/

3. code Tham khảo ANT spoj

var
  d, m, n: QWord;
begin
  ReadLn(n, m);
  d := m * n;
  while d > n do
    d := d + (d - n - 1) div (m - 1) - n;
  Write(d);
end.

4 thoughts on “ANT spoj – Kiến

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *