Thay vì là một chiến binh khéo léo có khả năng giết chết Hydras (xem tại đây và đây ), lần này bạn là một chiến binh không có kiến thức trước về cách giết một hoặc sử dụng vũ khí nào để chống lại sinh vật.
Trong vấn đề này, bất cứ khi nào bạn cắt một đầu ra, hai cái sẽ mọc cùng một chỗ. Vì bạn không có cơ chế cắt bỏ nhiều đầu cùng một lúc, số lượng đầu sẽ chỉ tăng lên. Trong trường hợp này, Hydra của chúng ta có thể bắt đầu bằng N(N ⩾ 1) đầu. Hãy gọi cuộc chạm trán đầu tiên là một thế hệ và chúng ta sẽ đại diện cho những người đứng đầu từ thế hệ đầu tiên là 0 , những người đứng đầu được tạo ra sau cú đánh đầu tiên là 1 , v.v.
Đầu vào
Bạn sẽ được cung cấp một số nguyên Nbiểu thị số lượng đầu mà Hydra ban đầu có và danh sách kích thước Nchứa chỉ mục nào (trong ví dụ tôi sẽ sử dụng định dạng 0 chỉ mục) bạn sẽ cắt đầu. Bạn luôn có thể giả sử các chỉ mục được cung cấp là hợp lệ - hãy nhớ rằng danh sách (ví dụ: các đầu) sẽ phát triển khi bạn cắt đầu.
Thí dụ
Đầu vào : N = 4và[0,4,2,5]
Thế hệ 0 - Chỉ số tấn công 0
0 0 0 0 => 1 1 0 0 0
^ ^ ^
Thế hệ 1 - Chỉ số tấn công 4
1 1 0 0 0 => 1 1 0 0 2 2
^ ^ ^
Thế hệ 2 - Chỉ số tấn công 2
1 1 0 0 2 2 => 1 1 3 3 0 2 2
^ ^ ^
Thế hệ 3 - Chỉ số tấn công 5
1 1 3 3 0 2 2 => 1 1 3 3 0 4 4 2
^ ^ ^
Thế hệ cuối cùng
1 1 3 3 0 4 4 2
Như bạn có thể thấy, các chỉ mục được cung cấp có liên quan đến danh sách của thế hệ trước.
Đầu ra
Bạn được yêu cầu xuất ra thế hệ cuối cùng.
Các trường hợp thử nghiệm
N = 1 and [0] => [1,1]
N = 2 and [0,0] => [2,2,1,0]
N = 2 and [0,1] => [1,2,2,0]
N = 2 and [1,0] => [2,2,1,1]
N = 2 and [1,1] => [0,2,2,1]
N = 4 and [0,4,2,5] => [1,1,3,3,0,4,4,2]
N = 6 and [0,0,0,0,0,0] => [6, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0]
N = 6 and [5,6,7,8,9,10] => [0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 6]
N = 10 and [1,7,3,12,9,0,15,2,2,10] => [6, 6, 9, 9, 8, 1, 3, 3, 0, 0, 10, 10, 2, 5, 5, 0, 0, 4, 7, 7]
Đây là mã golf để câu trả lời ngắn nhất trong byte thắng!
N(...) và danh sách kích thướcN (Nhưng tôi cũng đã bỏ lỡ phần đó khi tôi đọc lần đầu tiên thách thức.) Do đó, Nđơn giản là vô dụng.
Nkhỏi đầu vào vì nó "hoàn toàn" được đưa ra dưới dạng kích thước của mảng. Tuy nhiên, tôi nghĩ rằng các giải pháp sẽ tiết kiệm byte bằng cách đưa ra Nthay vì chúng dựa vào array.size()hoặc tương tự.