Viết hàm hoặc chương trình xử lý một khối văn bản và trả về văn bản mới. Chương trình hợp lệ nhỏ nhất sẽ thắng.
Mỗi dòng trong khối văn bản sẽ có định dạng sau:
12:34,56
Số đầu tiên là ID dòng, hai số được phân tách bằng dấu phẩy khác là tham chiếu đến các dòng khác.
Trong văn bản đầu vào, các số có thể là bất kỳ số nguyên nào lớn hơn hoặc bằng 0. Tất cả các số sẽ ở dạng thập phân được mã hóa ASCII không có số 0 đứng đầu. Sẽ không có ID dòng trùng lặp. Sẽ không có tham chiếu đến ID dòng không tồn tại, mặc dù có thể có ID dòng không được tham chiếu.
Trong văn bản đầu ra, dòng được đánh số thấp nhất sẽ được chuyển đến đầu khối văn bản và được đánh số lại thành 0. Mọi tham chiếu đến dòng này cũng phải được cập nhật. Tham chiếu đầu tiên trên dòng đó phải là 0 hoặc 1. Tham chiếu thứ hai chỉ có thể là 2 nếu tham chiếu đầu tiên là 1. Nếu không thì phải là 0 hoặc 1.
Tất cả các dòng phải theo thứ tự tăng dần, tăng dần (không bỏ qua số nào). Bạn chỉ có thể có một tham chiếu đến dòng n nếu đã có một tham chiếu trước đó cho dòng n-1 hoặc ID dòng hiện tại là n. Không được có dòng nào không được tham chiếu bởi ID dòng thấp hơn ngoại trừ dòng 0. Bất kỳ dòng nào như vậy phải được xóa trước khi đầu ra cuối cùng.
Bạn có thể cho rằng văn bản đầu vào luôn ở định dạng đúng.
Kiểm tra đầu vào số 1:
45:73,24
78:24,78
89:24,73
73:45,3
72:3,24
3:24,24
24:3,89
Sắp xếp lại:
3:24,24
24:3,89
89:24,73
73:45,3
45:73,24
78:24,78
72:3,24
Đổi số:
0:1,1
1:0,2
2:1,3
3:4,0
4:3,1
78:1,78
72:0,1
Các dòng không tham chiếu được loại bỏ cho đầu ra cuối cùng:
0:1,1
1:0,2
2:1,3
3:4,0
4:3,1
Tất nhiên, chương trình của bạn không phải tuân theo thứ tự này, chỉ cần tạo ra đầu ra chính xác. Đầu ra phải là một khối văn bản duy nhất hoặc tương đương gần nhất trong ngôn ngữ của bạn, tức là không có ký tự theo đầu ra trực tiếp của ký tự. Bạn có thể trả lại nó (ưu tiên) hoặc xuất toàn bộ khối trực tiếp. Giả sử đầu ra của bạn sẽ được chuyển đến một chức năng hoặc chương trình khác.
Kiểm tra đầu vào số 2
5:2,3
7:3,2
2:4,2
4:2,3
3:4,3
Đầu ra:
0:1,0
1:0,2
2:1,2
Kiểm tra đầu vào số 3
7:6,3
3:9,7
9:7,3
2:9,6
6:6,7
Đầu ra:
0:1,2
1:3,4
2:2,3
3:2,4
4:1,3