canuc80k0319·20/50

Sắp Xếp Hồ Sơ Địa Điểm

Nộp bài trên LQDOJ

Bài 03 · Sorting

Có hồ sơ địa điểm. Hồ sơ thứ ghi tên thành phố và điểm đánh giá ; các điểm đều khác nhau. Cần sắp các hồ sơ theo tên thành phố tăng dần theo thứ tự từ điển. Trong cùng một thành phố, hồ sơ có điểm cao hơn phải đứng trước. Hãy cho biết chỉ số ban đầu của các hồ sơ theo thứ tự này.

Input

  • Dòng đầu chứa số nguyên . Mỗi trong dòng tiếp theo chứa chuỗi và số nguyên .

Output

  • In dòng. Dòng thứ chứa chỉ số ban đầu của hồ sơ đứng thứ sau khi sắp xếp.

Constraints

  • gồm từ đến chữ cái thường tiếng Anh
  • với mọi

Scoring

  • Subtask ( điểm): .
  • Subtask ( điểm): Theo đầy đủ các giới hạn đã nêu.

Example

Test 1

Input

5
delta 70
alpha 30
alpha 90
delta 50
beta 60

Output

3
2
5
1
4

Giải thích: alpha đứng trước beta rồi delta; trong alpha, hồ sơ có điểm đứng trước hồ sơ có điểm , và trong delta, hồ sơ đứng trước hồ sơ .

Lời giải tóm tắt
  • Ý tưởng: Mỗi hồ sơ cần mang theo chỉ số gốc. Quy tắc sắp xếp có hai khóa với hai hướng khác nhau.
  • Thuật toán: Lưu bộ ba (thành phố, điểm, chỉ số). Khi so sánh hai hồ sơ, ưu tiên thành phố nhỏ hơn; nếu cùng thành phố, ưu tiên điểm lớn hơn. Sau khi sắp, in chỉ số.
  • Chứng minh tính đúng đắn: Comparator đặt đúng thứ tự từ điển cho mọi cặp khác thành phố và đúng thứ tự điểm giảm cho mọi cặp cùng thành phố. Hai trường hợp phủ mọi cặp hồ sơ; chỉ số được lưu không đổi nên đầu ra đúng chỉ số ban đầu.
  • Độ phức tạp: O(N log N · L) thời gian, với L ≤ 10 là độ dài tên; O(N) bộ nhớ.