Giới thiệu
Một mảng con trỏ là một mảng L
của nonzero số nguyên nơi 0 ≤ L[i]+i < len(L)
giữ cho tất cả các chỉ số i
(giả sử 0 dựa trên chỉ mục). Chúng tôi nói rằng chỉ số i
trỏ đến chỉ số L[i]+i
. Mảng con trỏ là một vòng lặp nếu các chỉ số tạo thành một chu kỳ dài len(L)
. Dưới đây là một số ví dụ:
[1,2,-1,3]
không phải là một mảng con trỏ, bởi vì3
nó không trỏ đến một chỉ mục.[1,2,-1,-3]
là một mảng con trỏ, nhưng không phải là một vòng lặp, vì không có chỉ mục nào trỏ đến-1
.[2,2,-2,-2]
là một mảng con trỏ, nhưng không phải là một vòng lặp, bởi vì các chỉ số tạo thành hai chu kỳ.[2,2,-1,-3]
là một vòng lặp.
Đầu vào
Đầu vào của bạn là một danh sách không trống các số nguyên khác, ở bất kỳ định dạng hợp lý nào. Nó có thể chưa được sắp xếp và / hoặc chứa các bản sao.
Đầu ra
Đầu ra của bạn sẽ là một vòng lặp chứa tất cả các số nguyên trong danh sách đầu vào (và có thể cả các số nguyên khác nữa), tính bội số. Chúng không cần phải xảy ra theo thứ tự như trong đầu vào, và đầu ra không cần phải tối thiểu theo bất kỳ ý nghĩa nào.
Thí dụ
Đối với đầu vào [2,-4,2]
, một đầu ra chấp nhận được sẽ là [2,2,-1,1,-4]
.
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép. Bao gồm một vài ví dụ đầu vào và đầu ra trong câu trả lời của bạn được đánh giá cao.
Các trường hợp thử nghiệm
Chúng được đưa ra trong định dạng input -> some possible output(s)
.
[1] -> [1,-1] or [1,1,1,-3]
[2] -> [2,-1,-1] or [1,2,-2,-1]
[-2] -> [1,1,-2] or [3,1,2,-2,-4]
[2,-2] -> [2,-1,1,-2] or [2,-1,2,-2,-1]
[2,2,2] -> [2,-1,2,-2,2,-2,-1] or [2,2,2,2,-3,-5]
[2,-4,2] -> [2,2,-1,1,-4] or [2,5,1,1,1,-4,2,-7,-1]
[3,-1,2,-2,-1,-5] -> [2,3,-1,2,-1,-5] or [3,3,-1,-1,2,2,-1,6,1,1,1,1,-12,-5]
[-2,-2,10,-2,-2,-2] -> [10,-1,1,-2,-2,1,-2,-2,1,-2,-2]
[-15,15,-15] -> [15,-1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,-15,-15]
[1,2,3,4,5] -> [1,2,3,-1,4,-1,5,-1,-1,-9,-1,-1]
n = 0
, bởi vì thông số kỹ thuật nói " số nguyên khác không ".