CSES - Grid Completion | Hoàn Thành Bảng Số

Xem PDF

Điểm: 600 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Nhiệm vụ của bạn là tạo một lưới \(n \times n\) mà mỗi hàng và cột có chính xác một AB. Một số kí tự đã được đặt. Bạn có thể hoàn thành lưới bằng bao nhiêu cách?

Input

  • Dòng đầu vào đầu tiên chứa một số nguyên \(n\): kích thước của lưới.

  • Sau đó, có \(n\) dòng mô tả lưới. Mỗi dòng có \(n\) kí tự: . có nghĩa làm một hình vuông trống, và AB hiển thị các kí tự đã được đặt.

  • Bạn có thể giả định rằng mỗi hàng và cột có nhiều nhất một AB.

Output

  • In một số nguyên: số cách chia lấy dư cho \(10 ^ 9 + 7\)

Constraints

  • \(1 \leq n \leq 500\)

Example

Input:

5  
.....  
..AB.  
.....  
B....  
...A.

Output:

16


Bình luận


  • 0
    vanphukhang_0604    9:08 p.m. 26 Tháng 8, 2023

    CSES - Grid Completion | Hoàn Thành Bảng Số

    Nhiệm vụ của bạn là tạo một lưới \(n \times n\) mà mỗi hàng và cột có chính xác một kí tự A và một kí tự B. Có một vài kí tự đã được đặt sẵn trên lưới. Bạn có thể hoàn thành lưới bằng bao nhiêu cách?

    Input

    • Dòng đầu tiên chứa số nguyên \(n \ (1 \leq n \leq 500)\): kích thước của lưới.
    • \(n\) dòng sau đó mô tả lưới. Mỗi dòng chứa \(n\) kí tự: . ứng với một ô trống, AB ứng với các kí tự đã được đặt sẵn. Dữ liệu đảm bảo rằng mỗi hàng và cột được đặt sẵn nhiều nhất một kí tự A và một kí tự B.

    Output

    • In ra một số nguyên là số cách hoàn thành lưới sau khi chia lấy dư cho \(10^9 + 7\).

    Example

    Test 1

    Input
    5
    .....
    ..AB.
    .....
    B....
    ...A.
    Output
    16