Cho phép xác định một chuỗi con trỏ đến được bất kỳ chuỗi như vậy mà một (n) = a ((n-1) - (a (n-1))) forall n lớn hơn một số số hữu hạn. Ví dụ: nếu chuỗi của chúng tôi bắt đầu với
3 2 1
Thuật ngữ tiếp theo của chúng tôi sẽ là 2, bởi vì a (n-1) = 1 , (n-1) -1 = 1 , a (1) = 2 (ví dụ này là chỉ số bằng 0 tuy nhiên việc bạn sử dụng chỉ số nào sẽ không quan trọng luôn luôn như vậy.). Nếu chúng ta lặp lại quá trình, chúng ta sẽ có được chuỗi vô hạn
3 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2
Bài tập
Cho một số mảng ban đầu của số nguyên dương xuất ra chuỗi con trỏ bắt đầu với mảng đó.
Các loại đầu ra
Đầu ra được dự định là linh hoạt, nếu bạn chọn viết một hàm vì chương trình của bạn có thể trả về, đó là một danh sách vô hạn các số nguyên hoặc một hàm lập chỉ mục chuỗi. Nếu bạn chọn viết một chương trình đầy đủ, bạn có thể xuất các thuật ngữ của chuỗi vô thời hạn.
Bạn cũng có thể chọn lấy hai đầu vào, mảng bắt đầu và một chỉ mục. Nếu bạn chọn làm điều này, bạn chỉ cần xuất thuật ngữ của chuỗi tại chỉ mục đó.
Bạn sẽ không bao giờ được cung cấp một chuỗi yêu cầu lập chỉ mục trước khi bắt đầu trình tự. Ví dụ: 3không phải là một đầu vào hợp lệ bởi vì bạn sẽ cần các điều khoản trước khi 3giải quyết các điều khoản tiếp theo.
Đây là môn đánh gôn, vì vậy điểm của bạn sẽ là số byte trong chương trình của bạn với điểm thấp hơn sẽ tốt hơn.
Các trường hợp thử nghiệm
trường hợp thử nghiệm được cắt ngắn để đơn giản
2 1 -> 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 ...
2 3 1 -> 2 3 1 3 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 ...
3 3 1 -> 3 3 1 3 3 3 1 3 3 3 1 3 3 3 1 3 3 3 1 3 3 3 1 3 3 3 1 3 ...
4 3 1 -> 4 3 1 3 4 4 3 3 4 4 4 3 4 4 4 4 3 4 4 4 4 3 4 4 4 4 3 4 ...