Duyên hải Bắc Bộ 2022 - Thiết kế hệ thống đèn

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Để trang trí hội trường cho buổi khai mạc Duyên Hải năm 2022, Ban tổ chức đã sử dụng ~n~ đèn, nếu coi mỗi đèn là một đỉnh của đồ thị và dây nối giữa các đèn là cạnh thì hệ thống đèn tương ứng như một cây. Ban tổ chức đã ghi chép lại dãy các thông tin ~b_1, b_2, ..., b_n~, trong đó ~b_i~ (~1 \le i \le n~) tương ứng là số dây nối với đèn thứ ~i~, hay nói một cách khác ~b_i~ là bậc của đỉnh ~i~. Vì một lí do nào đó, Ban tổ chức đã vô tình làm mất thông tin của một số phần tử trong dãy thông tin ~b_1, b_2, ..., b_n~. Để khôi phục lại các thông tin, Ban tổ chức đã nhờ đến Đào Quang Thái Dương (là cựu học sinh Chuyên Trần Phú, Huy chương Đồng APIO 2020). Rất nhanh chóng, Dương đã đếm được số lượng cách khác nhau điền thông tin vào các phần tử bị khuyết để nhận được dãy vẫn là dãy bậc của một cây nào đó.

Yêu cầu: Gọi ~s~ là số lượng cách điền thỏa mãn, hãy tính ~s \pmod{10^9 + 7}~, trong đó ~s~ là phép chia lấy dư để kiểm tra kết quả của Dương.

Input

  • Dòng đầu chứa số nguyên dương ~n~;
  • Dòng thứ hai chứa ~n~ số nguyên ~b_1, b_2, ..., b_n~, trong đó ~1 \le b_i \le n - 1~ hoặc ~b_i = -1~ cho biết thông tin đỉnh ~i~ bị mất.

Output

  • Ghi ra thiết bị ra chuẩn một số nguyên là giá trị ~s \pmod{10^9 + 7}~.

Sample Input 1

3
-1 -1 1

Sample Output 1

2

Giải thích: Có hai cách điền thông tin:

  • Cách 1: 1 2 1
  • Cách 2: 2 1 1

Subtasks

  • Có 20% số lượng test ứng với 20% số điểm thỏa mãn: ~n \le 6~;
  • Có 20% số lượng test khác ứng với 20% số điểm thỏa mãn: ~n \le 10~;
  • Có 20% số lượng test khác ứng với 20% số điểm thỏa mãn: ~n \le 100~;
  • Có 20% số lượng test khác ứng với 20% số điểm thỏa mãn: ~n \le 10^4~;
  • Có 20% số lượng test còn lại ứng với 20% số điểm thỏa mãn: ~n \le 10^6~.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.