AO LÀNG VI - XẾP HẠNG WINNER
Xem dạng PDFVOZ là một diễn đàn lớn tại Việt Nam, nơi các thành viên có thể trao đổi về những chủ đề trong lĩnh vực CNTT. Ngoài CNTT, VOZ còn là nơi ươm mầm tài năng có tiếng, những người đã từng đặt chân đến mảnh đất này gọi là VOZer. Một hôm, admin VOZ có mở một contest cho những VOZer. Trong contest này, mọi VOZer làm mọi cách để chứng tỏ mình là một Winner chứ không phải là một Lesor 200 chap. Sau hai tuần cưa gái vất vả, ban tổ chức công bố bảng điểm tổng cho toàn thể thiên hạ. Thứ hạng của một VOZer chính là số lượng VOZer khác có điểm lớn hơn người này rồi cộng thêm ~1~. Bên dưới là BXH minh họa:
| Thứ hạng | Thí sinh | Độ Winner Chất chơi Người dơi |
|---|---|---|
| 1 | Hoài Linh | 14000000000 |
| 2 | Sena | 3300000000 |
| 3 | Đạt Villa | 400000000 |
| 4 | Jack 97 | 5000000 |
| 4 | Mèo Simmy | 5000000 |
| 6 | Người ra đề | 0 |
Chỉ cần nhìn vào cột "Thứ hạng", ta có thể thấy giá trị trong cột này tạo thành một dãy không giảm gồm ~n~ phần tử, ngoài ra còn có nhiều tính chất thú vị khác. Nhiệm vụ của bạn là đếm toàn bộ số dãy Thứ hạng có thể. Chú ý rằng dãy ~A~ và ~B~ được coi là khác nhau khi tồn tại một vị trí ~i~ trong dãy mà ~A_i \neq B_i~.
Input:
- Gồm một số nguyên dương ~n\ (1 \le n \le 2 \times 10^9)~.
Output:
- Gồm một số nguyên dương là số dãy có thể tạo ra sau khi chia dư cho ~10^9+7~.
Sample Input
3
Sample Output
4
Giải thích
Có ~4~ dãy xếp hạng có thể:
- 1 1 1: Ba VOZer ngang điểm.
- 1 1 3: Hai VOZer đứng đầu bằng điểm và hơn VOZer thứ 3.
- 1 2 2: Một VOZer xuất chúng, 2 VOZer còn lại bằng điểm.
- 1 2 3: Ba VOZer có điểm khác nhau.
Ràng buộc
- 30% số test có ~n \le 10~.
- 20% số test có ~n \le 10^4~.
- 30% số test có ~n \le 10^7~.
- 20% số test không có ràng buộc gì thêm.
Bình luận