Giới thiệu:
Trong tiếng Hà Lan, các từ dẫn đầu và đau khổ, lần lượt là 'leiden' và 'lijden', được phát âm theo cùng một cách. Một được viết bằng "ei ngắn" và một với "ij dài" , như người Hà Lan chúng ta thường nói, nhưng cả 'ei' và 'ij' đều được phát âm là [i].
Thử thách:
Đưa ra một danh sách các số, xác định cái nào (nếu có) đang dẫn đầu, và cái nào (nếu có) đang chịu đựng.
Một số hàng đầu là:
- Một số dương
- Có ít nhất bốn chữ số
- Nằm trong 50% cao nhất của danh sách về giá trị
- Vẫn nằm trong 50% cao nhất của danh sách về giá trị, nếu chữ số thứ 3 được thay thế bằng chữ số thứ 2 và vị trí chữ số thứ 2 của nó được điền bằng 0 (nghĩa là
1234
sẽ trở thành1024
)
Một con số đau khổ là:
- Một số âm
- Có ít nhất bốn chữ số
- Nằm trong 50% thấp nhất của danh sách về giá trị
- Vẫn nằm trong 50% thấp nhất của danh sách về giá trị, nếu chữ số thứ 3 được thay thế bằng chữ số thứ 2 và vị trí chữ số thứ 2 của nó được điền bằng 0 (nghĩa là
-4321
sẽ trở thành-4031
)
Thí dụ:
Đầu vào: [5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
Đầu ra: hàng đầu : [5827, 281993, 37819, 37298]
; đau khổ:[-32781, -2739]
Giải trình:
Nếu chúng ta sắp xếp và chia các số thành hai nửa, đó sẽ là:
[[-32781, -2739, -389, 0, 3798], [3854, 3918, 5827, 37819, 281993]]
Chỉ có hai số âm có ít nhất bốn chữ số : [-32781, -2739]
. Thay đổi các chữ số như mô tả ở trên sẽ không thay đổi vị trí của chúng, vì vậy cả hai đều là những con số đau khổ.
Đối với một nửa lớn nhất, tất cả các số có ít nhất bốn chữ số : [3854, 3918, 5827, 37819, 281993]
. Thay đổi các chữ số như mô tả ở trên sẽ thay đổi một số vị trí của họ. Điều 3854
này sẽ trở thành 3084
, đặt nó dưới 3798
mức thấp nhất 50%, vì vậy 3854
không phải là một số dẫn đầu trong danh sách này. Điều tương tự áp dụng cho 3918
điều đó sẽ trở thành 3098
, cũng đặt nó dưới đây 3798
. Ba con số khác đang dẫn đầu, như 5827
sẽ trở thành 5087
, vẫn còn ở trên 3798
và trên thực tế vẫn ở cùng một chỉ mục của danh sách được sắp xếp. Vì thế[5827, 37819, 281993]
là những con số hàng đầu.
Quy tắc thử thách:
- I / O là linh hoạt. Danh sách đầu vào có thể là danh sách các số nguyên, danh sách chữ số 2D, danh sách các chuỗi, v.v ... Đầu ra có thể là danh sách các số nguyên, hai danh sách riêng biệt, hai chuỗi, cả hai được in ra STDOUT, v.v.
- Khi xác định xem một số có dẫn đầu / đau khổ hay không, chúng ta chỉ nhìn vào vị trí mới của số đó nếu chỉ các chữ số của nó được thay đổi tương ứng, không phải sau khi chúng ta áp dụng các sửa đổi cho tất cả các số.
- Chúng tôi xuất số gốc, không phải số đã sửa đổi.
- Các số trong danh sách đầu ra hàng đầu và chịu đựng có thể theo bất kỳ thứ tự nào.
- Nếu kích thước của danh sách đầu vào là số lẻ, số ở giữa không thuộc một nửa.
- Số được đảm bảo duy nhất sau khi sửa đổi. Vì vậy, một danh sách như
[0, 1, 1045, 1485]
không phải là một danh sách đầu vào hợp lệ, vì1485
sẽ bằng với1045
sau khi sửa đổi.
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Quy tắc chuẩn áp dụng cho câu trả lời của bạn với quy tắc I / O mặc định , vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn (ví dụ TIO ).
- Ngoài ra, thêm một lời giải thích cho câu trả lời của bạn rất được khuyến khích.
Các trường hợp thử nghiệm:
Input: [5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
Output: leading: [5827, 281993, 37819, 37298]; suffering: [-32781, -2739]
Input: [-100, 472, 413, -1782]
Output: leading: []; suffering: [-1782]
Input: [-1234, -1235, -1236, 1234, 1235, 1236]
Output: leading: [1234, 1235, 1236]; suffering: [-1234, -1235, -1236]
Input: [-1919, -1819, -1719, -1619, -1500, -1444, 40, 4444, 18]
Output: leading: [4444]; suffering: []
Input: [-1004, -1111, -1000]
Output: leading: []; suffering: [-1111]
Input: [-1004, -1111, -1010, 1000]
Output: leading: [1000]; suffering: [-1111]
Input: [1000, -1000]
Output: leading: [1000]; suffering: [-1000]
Input: [1000, -5000, 4000]
Output: leading: [4000]; suffering: [-5000]