Hội thao học sinh (Olympic 30/4 K10- 2025)

Xem dưới dạng PDF

Gửi bài giải

Điểm: 20
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

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ẻđộ 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


  • 0
    nhan0123456  đã bình luận lúc 16 tháng 4 năm 2025, 2:02 p.m.

    nộp code sai vẫn AC, còn code GSPVH thì TLE