VOI 17 Bài 2 - Dãy Fibonacci

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Năm 1202, Leonardo Fibonacci, nhà toán học người Ý, tình cờ phát hiện ra tỉ lệ vàng 0.618 được tiệm cận bằng thương của hai số liên tiếp trong một loại dãy số vô hạn được một số nhà toán học Ấn Độ xét đến từ năm 1150. Sau đó dãy số này được đặt tên là dãy số Fibonacci ~{F_i: i = 1, 2, \ldots}~, trong đó ~F_1 = F_2 = 1~ và mỗi số tiếp theo trong dãy được tính bằng tổng của hai số ngay trước nó. Đây là 10 số đầu tiên của dãy Fibonacci: ~1, 1, 2, 3, 5, 8, 13, 21, 34, 55~. Người ta đã khám phá ra mối liên hệ chặt chẽ của số Fibonacci và tỉ lệ vàng với sự phát triển trong tự nhiên (cánh hoa, cành cây, vân gỗ), trong vũ trụ (hình xoáy trôn ốc dải ngân hà, khoảng cách giữa các hành tinh), hay sự cân đối của cơ thể con người. Đặc biệt số Fibonacci được ứng dụng mạnh mẽ trong kiến trúc (Kim tự tháp Ai Cập, tháp Eiffel), trong mỹ thuật (các bức tranh của Leonardo da Vinci), trong âm nhạc (các bản giao hưởng của Mozart) và trong nhiều lĩnh vực khoa học kĩ thuật.

Trong toán học, dãy Fibonacci là một đối tượng tổ hợp quan trọng có nhiều tính chất đẹp. Có nhiều phương pháp hiệu quả liệt kê và tính các số Fibonacci như phương pháp lặp hay phương pháp nhân ma trận.

Sau khi được học về dãy số Fibonacci, Sơn rất muốn phát hiện thêm những tính chất của dãy số này. Vì thế Sơn đặt ra bài toán sau đây: Hỏi rằng có thể tìm được một tập con các số trong ~n~ số Fibonacci liên tiếp bắt đầu từ số thứ ~i~, sao cho tổng của chúng chia hết cho một số nguyên dương ~k~ ~(k \le n)~ cho trước hay không? Nhắc lại, một tập con ~q~ số của một dãy ~n~ số là một cách chọn ra ~q~ số bất kỳ trong số ~n~ số của dãy đó, mỗi số được chọn không quá một lần.

Yêu cầu: Hãy giúp Sơn giải quyết bài toán đặt ra.

Input

  • Dòng thứ nhất ghi số nguyên dương ~T~ ~(T \le 10)~ là số lượng bộ dữ liệu
  • Mỗi dòng trong ~T~ dòng tiếp theo chứa ba số nguyên dương ~n~, ~i~ và ~k~ là thông tin của một bộ dữ liệu.

Các số trên cùng dòng được ghi cách nhau bởi dấu cách.

Output

Ghi ra ~T~ dòng tương ứng với kết quả của ~T~ bộ dữ liệu đầu vào, mỗi dòng có cấu trúc như sau: Đầu tiên ghi số nguyên ~q~ là số lượng các số trong tập con tìm được, tiếp đến ghi ~q~ số nguyên là các số thứ tự trong dãy Fibonacci của ~q~ số trong tập con tìm được. Nếu không tìm được tập con thoả mãn điều kiện đặt ra thì ghi ra một số ~0~.

Nếu có nhiều cách chọn thì chỉ cần đưa ra một cách chọn bất kỳ.

Giới hạn

  • Có ~20\%~ số lượng test thoả mãn điều kiện: ~n \le 20, i \le 10^6~;
  • Có ~20\%~ số lượng test khác thoả mãn điều kiện: ~n \le 10^3, i \le 10^6~;
  • Có ~20\%~ số lượng test khác thoả mãn điều kiện: ~n \le 10^6, i \le 10^6~;
  • Có ~10\%~ số lượng test khác thoả mãn điều kiện: ~n \le 20, i \le 10^{15}~;
  • Có ~10\%~ số lượng test khác thoả mãn điều kiện: ~n \le 10^3, i \le 10^{15}~;
  • ~20\%~ số lượng test còn lại thoả mãn điều kiện: ~n \le 10^6, i \le 10^{15}~.

Sample Input

1
10 3 9

Sample Output

4 3 4 5 6

Note

Giải thích: Trong test ví dụ, một tập con thoả mãn điều kiện đặt ra là tập gồm 4 số ~F_3 = 2, F_4 = 3, F_5 = 5, F_6 = 8~ với tổng bằng ~18~.


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -6
    trieuyanglake_1  đã bình luận lúc 18, Tháng 4, 2023, 10:19

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -5
      HotStepBroz  đã bình luận lúc 22, Tháng 6, 2023, 14:29

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -15
    This_is_a_name  đã bình luận lúc 8, Tháng 10, 2021, 12:30 chỉnh sửa

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • 5
      DeMen100ns  đã bình luận lúc 28, Tháng 2, 2022, 4:38 chỉnh sửa

      Nhiệm vụ của bạn là chứng minh chỉ cần dùng đoạn con liên tiếp đấy :)), nếu không chứng minh được thì bạn không làm được sub3 và 6 đâu ._.


    • -8
      Duy_e  đã bình luận lúc 14, Tháng 10, 2021, 6:59

      Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.