CSES - Collecting Numbers Distribution | Phân bố số vòng thu thập số

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bạn được cho một mảng chứa mỗi số từ \(1 \dots n\) đúng một lần. Bạn thu thập các số theo thứ tự tăng dần từ \(1\) đến \(n\). Ở mỗi vòng, bạn duyệt mảng từ trái sang phải và thu thập nhiều số liên tiếp nhất có thể, bắt đầu từ số nhỏ nhất chưa được thu thập.

Nhiệm vụ của bạn là xác định, với mỗi \(k=1,2,\dots,n\), số mảng cần đúng \(k\) vòng để thu thập tất cả các số.

Input

Dòng duy nhất chứa một số nguyên \(n\).

Output

In ra \(n\) số: với mỗi \(k=1,2,\dots,n\), đáp án lấy modulo \(10^9+7\).

Constraints

  • \(1 \le n \le 5000\)

Example

Test 1

Input
3
Output
1
4
1

Explanation

Các mảng là \([1,2,3]\) (\(1\) vòng), \([1,3,2]\) (\(2\) vòng), \([2,1,3]\) (\(2\) vòng), \([2,3,1]\) (\(2\) vòng), \([3,1,2]\) (\(2\) vòng), và \([3,2,1]\) (\(3\) vòng).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.