Cho x = (x1, x2, ..., xn) là một hoán vị của dãy số (1, 2, ..., n).
Dãy t = (t1, t2, ..., tn) được gọi là dãy nghịch thế của dãy hốn vị x nếu nó được xây dựng như sau: ti := số phần tử đứng trước giá trị i mà lớn hơn i trong dãy x. (1 ≤ i ≤ n).
Ví dụ: Với n = 6
• Dãy x = (3, 2, 1, 6, 4, 5) thì dãy nghịch thế của nó là (2, 1, 0, 1, 1, 0)
• Dãy x = (1, 2, 3, 4, 5, 6) thì dãy nghịch thế của nó là (0, 0, 0, 0, 0, 0)
• Dãy x = (6, 5, 4, 3, 2, 1) thì dãy nghịch thế của nó là (5, 4, 3, 2, 1, 0)
Vấn đề đặt ra là cho trước dãy t, hãy cho biết dãy hoán vị x nhận t làm dãy nghịch thế của nó.
Dữ liệu: Vào từ file văn bản RECOVER.INP
• Dịng 1: Chứa số ngun dương n (n ≤ 5000).
• Dịng 2: Chứa các số t1, t2, ..., tn theo đúng thứ tự đó cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra file văn bản RECOVER.OUT
Chỉ gồm một dòng ghi các số x1, x2, ..., xn cách nhau ít nhất một dấu cách theo đúng thứ tự đó. Dữ liệu vào được cho ln ln đúng đắn để có thể tìm ra nghiệm
Ví dụ:
RECOVER.INP RECOVER.OUT 6 6
2 1 0 1 1 0
095. MUA HÀNG
Một cơng ty muốn mua m máy tính. Sau khi lấy thông tin tại n cửa hàng (1 ≤ n ≤ 10000), người ta biết được rằng cửa hàng thứ i có bán ai máy tính và với giá mỗi máy tính là bi. (ai, bi là những số nguyên dương: ai ≤ 100; bi ≤ 2000).
Giả sử rằng các cửa hàng có đủ máy để bán cho cơng ty. Hãy tìm cách mua rẻ nhất.
Dữ liệu: Vào từ file văn bản BUY.INP
• Dịng 1: Chứa hai số m, n cách nhau ít nhất một dấu cách.
• n dòng tiếp theo, dòng thứ i chứa hai số ai, bi cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra file văn bản BUY.OUT
• Dịng 1: Ghi tổng số tiền phải trả.
• n dịng tiếp theo, dịng thứ i ghi số máy tính mua ở cửa hàng thứ i.
Ví dụ: BUY.INP BUY.OUT 22 5 3 30 5 10 6 8 10 5 2 20 168 0 5 6 10 1