Búp bê lồng nhau
Đề bài
Mô tả
Có con búp bê gỗ lồng nhau (matryoshka). Con búp bê thứ có thể tích ngoài là và bên trong rỗng một khoảng thể tích (luôn có ).
Búp bê có thể được lồng vào bên trong búp bê nếu . Một tập búp bê được gọi là lồng nhau nếu ta có thể sắp xếp chúng thành một dãy sao cho con thứ nhất lồng vào con thứ hai, con thứ hai lồng vào con thứ ba, và cứ thế tiếp tục.
Với một tập lồng nhau gồm các búp bê (theo thứ tự từ trong ra ngoài), khoảng trống thừa của cấu trúc là tổng thể tích rỗng còn lại:
Một tập lồng nhau được gọi là đủ lớn nếu không thể thêm bất kỳ búp bê nào khác trong dãy vào tập đó mà vẫn giữ được tính lồng nhau.
Bạn cần chọn một tập con lồng nhau đủ lớn sao cho khoảng trống thừa của nó là nhỏ nhất trong số tất cả các tập đủ lớn. Hãy đếm xem có bao nhiêu tập con đủ lớn khác nhau đạt được khoảng trống thừa nhỏ nhất này.
Hai tập con được coi là khác nhau nếu tồn tại ít nhất một chỉ số mà búp bê thứ thuộc tập này nhưng không thuộc tập kia.
Vì kết quả có thể rất lớn, hãy in ra phần dư khi chia cho .
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên là số lượng búp bê.
- dòng tiếp theo, dòng thứ chứa hai số nguyên và là thể tích ngoài và thể tích rỗng bên trong của búp bê thứ .
Dữ liệu ra
- In ra một số nguyên duy nhất là số tập con đủ lớn có khoảng trống thừa nhỏ nhất, lấy phần dư khi chia cho .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 7 4 1 4 2 4 2 2 1 5 4 6 4 3 2 |
6 | Có 6 tập đủ lớn đạt khoảng trống thừa nhỏ nhất (bằng 1): {1,5}, {1,6}, {2,4,5}, {2,4,6}, {3,4,5}, {3,4,6}. Chẳng hạn {6,7} không đủ lớn vì có thể thêm búp bê 4; còn {4,6,7} có khoảng trống thừa bằng 2. |
| 1 1000000000 999999999 |
1 | Chỉ có một búp bê, tập {1} là tập đủ lớn duy nhất. |
| 4 3 2 10 2 4 3 5 4 |
2 | Có hai tập đủ lớn cùng đạt khoảng trống thừa nhỏ nhất. |
Bình luận