Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập dayvoilon

Đàn voi cân nặng không giảm

Dễ Sắp xếpQuy hoạch động dãy con tăng

  • 100 Điểm
  • 1.0s Thời gian
  • 500M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 Số AC

Trong một đàn voi, mỗi con có cân nặng \(w\) và chỉ số IQ \(q\). Sắn muốn chọn ra nhiều con voi nhất có thể và xếp thành một hàng sao cho cân nặng không giảm và IQ không tăng từ đầu hàng đến cuối hàng (tức là con sau có \(w\) lớn hơn hoặc bằng và \(q\) nhỏ hơn hoặc bằng con trước).

Hãy in ra số lượng lớn nhất và một hàng như vậy. Trong tất cả các hàng hợp lệ có số lượng lớn nhất, in ra hàng có dãy số thứ tự nhỏ nhất theo thứ tự từ điển (so sánh lần lượt từng phần tử từ đầu hàng).

Input

  • Mỗi dòng gồm hai số nguyên \(w\) và \(q\) mô tả một con voi.
  • Danh sách kết thúc bằng một dòng chứa số \(0\).
  • Các con voi được đánh số từ \(1\) theo thứ tự xuất hiện; có thể có nhiều con voi cùng cân nặng, cùng IQ.

Output

  • Dòng thứ nhất: số lượng voi lớn nhất \(k\).
  • Dòng thứ hai: \(k\) số thứ tự voi trong hàng được chọn, cách nhau một dấu cách.

Constraints

  • Có tối đa \(10^5\) con voi (ít nhất một con).
  • \(1 \le w, q \le 10^9\)

Sample Input

3000 900
2000 1500
4500 700
2500 1400
3000 900
3000 800
2000 1500
0

Sample Output

7
2 7 4 1 5 6 3

Explanation

Cả \(7\) con đều được chọn: hai con \(2, 7\) cùng \((2000, 1500)\), tiếp theo con \(4\) \((2500,1400)\), hai con \(1, 5\) cùng \((3000, 900)\), con \(6\) \((3000, 800)\) và cuối cùng con \(3\) \((4500, 700)\). Hai con giống hệt nhau được xếp theo số thứ tự tăng dần để dãy chỉ số nhỏ nhất theo thứ tự từ điển.

Bình luận

Chưa có bình luận nào.