Đưa ra một danh sách điểm số (số nguyên không âm) được sắp xếp trước từ lớn nhất đến nhỏ nhất:
[ 10, 10, 6, 6, 4, 0]
Chỉ định mỗi điểm một thứ hạng nguyên, bắt đầu bằng 1 và tăng dần, sao cho điểm bằng nhau có cùng thứ hạng (nghĩa là chúng được gắn):
[ 1, 1, 3, 3, 5, 6 ]
Trong trường hợp quan hệ, các cấp bậc được "bỏ qua", ví dụ: do điểm số lớn nhất thứ nhất và thứ hai (10 và 10) bị ràng buộc, cả hai đều có thứ hạng 1 và thứ hạng 2 là "bị bỏ qua", do đó, điểm số cao thứ ba ( 6) có hạng 3.
Xuất ra một danh sách các thứ hạng không giảm tương ứng với điểm số đầu vào.
Ví dụ
In: 10 10 6 6 4 0
Out: 1 1 3 3 5 6
In: 10 9 8
Out: 1 2 3
In: 0 0 0
Out: 1 1 1
In: 16 15 15 12 11 11 10 9 9 9 8 2 2 2 0
Out: 1 2 2 4 5 5 7 8 8 8 11 12 12 12 15
Đầu vào
Giả sử tất cả các điểm sẽ nằm trong khoảng từ 0 đến 1.000, và đầu vào sẽ có không quá 500 điểm. Đầu vào có thể ở bất kỳ định dạng nào thuận tiện cho ngôn ngữ bạn chọn (bao gồm nhưng không giới hạn ở STDIN, đối số cho một hàm, một mảng đã được lưu trữ trong một biến, v.v.).
Đầu ra
Return hoặc lưu trữ trong một biến kết quả ra lệnh danh sách các cấp bậc, hoặc ghi nó vào STDOUT một cách con người có thể đọc được (ví dụ như 1 2 3
, [1,2,3]
, 1\n2\n3\n
, và { 1, 2, 3 }
tất cả đều tốt; 123
không phải là, vì thiếu một dấu phân cách). Điểm số đầu vào có thể được lưu trữ / in cùng với thứ hạng đầu ra tương ứng của chúng, nhưng điều đó không bắt buộc.
Những hạn chế
Bạn có thể sử dụng bất kỳ thư viện tiêu chuẩn mà ngôn ngữ của bạn cung cấp. Tiêu chuẩn áp dụng.
Điều kiện chiến thắng
Đây là môn đánh gôn , vì vậy chương trình nhỏ nhất (tính bằng byte) sẽ thắng. Trong trường hợp hòa, câu trả lời có nhiều phiếu nhất sẽ thắng.
Ghi chú
Điều này dựa trên câu hỏi của Ruby về SO đã tạo ra một số câu trả lời thú vị, bao gồm một câu hỏi rất ngắn. Tôi khuyến khích bạn đưa ra giải pháp của riêng bạn trước khi nhìn vào đó.