Hội thao vui khoẻ năm nay của trường THPT LHP có \(N\) học sinh tranh tài, được đánh số lần lượt từ \(1\) đến \(N\) và tất cả được xếp thành một vòng tròn.
- Học sinh thứ \(i (1 \le i \lt N)\) đứng bên trái học sinh thứ \(i+1\), học sinh thứ \(N\) đứng bên trái học sinh thứ \(1\).
- Học sinh thứ \(i (1 \le i \le N)\) có hai chỉ số \(H_i\) và \(S_i\) tương ứng tượng trưng cho độ khoẻ và độ mạnh.
Luật chơi
Hội thao bao gồm nhiều vòng đấu giống nhau. Ở mỗi vòng:
- Tất cả học sinh đồng loạt tấn công người bên phải mình.
- Mỗi học sinh bị giảm đi một lượng đúng bằng chỉ số độ mạnh của người vừa tấn công mình.
- Nếu chỉ số độ khoẻ \(H_i \le 0\), học sinh đó bị loại khỏi cuộc chơi.
- Các vòng đấu tiếp theo được lặp lại cho đến khi chỉ còn một hoặc không còn học sinh nào.
Xếp hạng
Giả sử có hai học sinh \(A\) và \(B\), thì \(A\) có thứ hạng cao hơn \(B\) nếu và chỉ nếu:
- \(A\) là người ở lại cuối cùng, hoặc
- \(A\) bị loại ở vòng đấu sau \(B\), hoặc
- \(A\) và \(B\) bị loại ở cùng một vòng, nhưng tại thời điểm bị loại \(A\) có độ khoẻ cao hơn \(B\), hoặc
- \(A\) và \(B\) bị loại ở cùng một vòng và cùng độ khoẻ, nhưng \(A\) có độ mạnh lớn hơn \(B\)
Trong các trường hợp còn lại, \(A\) không có thứ hạng cao hơn \(B\).
Mục tiêu
- Xếp hạng cuối cùng của học sinh thứ \(i\) là \(R_i = C_i + 1\), với \(C_i\) là số lượng học sinh \(j\) mà \(j\) có thứ hạng cao hơn \(i\).
Dữ liệu vào
- Dòng đầu chứa số nguyên dương duy nhất \(N\) là số lượng học sinh (\(1 \le N \le 10^6\))
- Dòng thứ hai chứa \(N\) số nguyên \(H_1, H_2, ..., H_n\) mô tả chỉ số độ khoẻ (\(1 \le H_i \le 10^9\))
- Dòng thứ ba chứa \(N\) số nguyên \(S_1, S_2, ..., S_n\) mô tả chỉ số độ mạnh (\(1 \le S_i \le 10^9\))
Dữ liệu ra
- Dòng ghi \(N\) số nguyên \(R_1, R_2, ..., R_n\) cách nhau bởi một dấu cách.
Input 1
5
10 6 7 5 9
2 2 1 3 4
Output 1
5 4 2 1 3
Giải thích
Mỗi vòng đấu các học sinh tấn công người bên phải, giảm khoẻ theo độ mạnh đối phương, loại học sinh bị \(0\) hoặc âm.
Vòng | H_1 | H_2 | H_3 | H_4 | H_5 |
---|---|---|---|---|---|
0 | 10 | 6 | 7 | 5 | 9 |
1 | 6 | 4 | 5 | 4 | 6 |
2 | 2 | 2 | 3 | 3 | 3 |
3 | -2 | 0 | 1 | 2 | 0 |
4 | × | × | -2 | 1 | × |
5 | × | × | x | 1 | × |
Khi kết thúc, ta có thông tin để xếp hạng như sau:
Học sinh | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
Vòng bị loại | 3 | 3 | 4 | x | 3 |
Độ khỏe ngay trước khi bị loại | -2 | 0 | -2 | x | 0 |
Độ mạnh | 2 | 2 | 1 | 3 | 4 |
Như vậy,
- Xếp hạng của học sinh \(1\) là \(r_1 = c_1 + 1 = 5\), với \(c_1 = 4\) do tất cả học sinh còn lại đều có thứ hạng cao hơn học sinh 1;
- Xếp hạng của học sinh \(2\) là \(r_2 = c_2 + 1 = 4\), với \(c_2 = 3\) do các học sinh 3, 4, 5 có thứ hạng cao hơn học sinh 2;
- Xếp hạng của học sinh \(3\) là \(r_3 = c_3 + 1 = 2\), với \(c_3 = 1\) do chỉ có học sinh 4 có thứ hạng cao hơn học sinh 3;
- Xếp hạng của học sinh \(4\) là \(r_4 = c_4 + 1 = 1\), với \(c_4 = 0\) do không có học sinh nào có thứ hạng cao hơn học sinh 4;
- Xếp hạng của học sinh \(5\) là \(r_5 = c_5 + 1 = 3\), với \(c_5 = 2\) do các học sinh 3, 4 có thứ hạng cao hơn học sinh 5.
Subtasks
- Subtask 1 (20%): \(N \le 100; H_i, S_i \le 100\)
- Subtask 2 (20%): \(N \le 2000\)
- Subtask 3 (20%): \(N \le 300_000\), \(S_1 = S_2 = ... = S_n\)
- Subtask 4 (15%): \(N \le 300_000\), học sinh 1 luôn sống cuối cùng
- Subtask 5 (15%): \(N \le 300_000\)
- Subtask 6 (10%): Không có ràng buộc nào thêm
Nhận xét
nộp code sai vẫn AC, còn code GSPVH thì TLE