canuc80k7101·2/16

Bảng Giá Trị Liên Tiếp

Nộp bài trên LQDOJ

Bài 71 · Lagrange Interpolation

Mọi phép tính được thực hiện theo modulo .

Cho một đa thức có bậc không quá . Bạn biết lần lượt các giá trị . Hãy tính .

Input

  • Dòng đầu chứa số nguyên .
  • Dòng thứ hai chứa số nguyên , trong đó .

  • Dòng thứ ba chứa số nguyên .

Output

  • In dưới dạng số dư trong .

Constraints

  • .
  • .
  • .

Scoring

  • Subtask ( số điểm): .
  • Subtask ( số điểm): Không có giới hạn bổ sung.

Example

Test 1

Input

2
1 4 9
3

Output

16

Giải thích: Bảng giá trị thuộc đa thức , nên .

Test 2

Input

3
0 1 8 27
5

Output

125

Giải thích: Các giá trị đã cho thuộc đa thức ; thay thu được .

Lời giải tóm tắt
  • Ý tưởng: Các nút nội suy là 0,1,...,N. Với nút i, mẫu số của cơ sở Lagrange bằng
  • Ý tưởng: [ \prod_{j\ne i}(i-j)=i!\,(-1)^{N-i}(N-i)!. ]
  • Ý tưởng: Tích ở tử được lấy bằng hai mảng prefix và suffix của các thừa số T-j. Nhờ đó, sau khi chuẩn bị giai thừa và giai thừa nghịch đảo, mỗi hạng được tính trong O(1) và toàn bộ truy vấn trong O(N). Nếu T≤N, trả trực tiếp A_T.
  • Ý tưởng: Độ phức tạp: O(N+log MOD) thời gian, O(N) bộ nhớ.