Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

Đếm đường đi

100 điểm

Cho một lưới ô vuông gồm \(r\) hàng và \(c\) cột. Các hàng được đánh số từ \(1\) tới \(r\) theo thứ tự từ trên xuống dưới, các cột được đánh số từ \(1\) tới \(c\) theo thứ tự từ trái qua phải. Trên bảng có một số ô cấm.

Bạn cần đi từ góc trái trên \(–\) ô \((1, 1)\) tới góc phải dưới \(–\) ô \((r, c)\). Tại mỗi bước, bạn được đi theo một trong năm hướng như hình vẽ dưới đây:

\begincenter

\endcenter

Một đường đi được gọi là đường đi đẹp khi và chỉ khi đường đi có những tính chất sau:

  • Mọi bước đi đều đi theo một trong năm hướng nêu trên.
  • Hai bước đi liên tiếp nhau phải đi theo hai hướng khác nhau.
  • Đường đi không đi qua ô cấm nào.

Ví dụ, đường đi dưới đây là một đường đi đẹp:

\begincenter

\endcenter

Đường đi dưới đây không phải đường đi đẹp vì có một bước đi không theo cả năm hướng trên:

\begincenter

\endcenter

Đường đi dưới đây không phải đường đi đẹp vì có hai bước đi liên tiếp theo cùng một hướng:

\begincenter

\endcenter

Đường đi dưới đây không phải đường đi đẹp vì có đi qua ô cấm:

\begincenter

\endcenter

Hãy đếm số đường đi đẹp từ ô \((1, 1)\) tới ô \((r, c)\).

Input

Dòng đầu tiên chứa hai số nguyên \(r\) và \(c\) \((1 \leq r, c \leq 2207)\) \(–\) số hàng và số cột của bảng.

\(r\) dòng tiếp theo, mỗi dòng chứa \(c\) kí tự mô tả bảng. Ký tự . thể hiện ô không cấm và ký tự # thể hiện ô cấm.

Dữ liệu vào đảm bảo hai ô \((1, 1)\) và \((r, c)\) đều không phải ô cấm.

Output

In ra một số nguyên duy nhất là số đường đi đẹp modulo \(998244353\).

Example

Test 1

Input
3 3
...
.#.
...
Output
6

Test 2

Input
4 4
....
.##.
.#..
....
Output
6

Test 3

Input
7 21
.....................
.####...#...#..#...#.
.#...#..#...#..#...#.
.####....#.#...#####.
.#.......#.#...#...#.
.#........#....#...#.
.....................
Output
0

Scoring

  • Subtask \(1\) (\(50\) điểm): \(r, c \leq 7\)

  • Subtask \(2\) (\(50\) điểm): \(r, c \leq 2207\)

root

Biểu thức

100 điểm

Bạn được cho 1 danh sách \(A\) gồm \(n\) số nguyên và một số nguyên \(m\). Bạn được quyền thực hiện các thao tác thỏa mãn điều kiện sau:

  • Không được thay đổi thứ tự các phần tử của danh sách này.
  • Bạn phải chèn thêm một trong hai dấu \(\{+,-\}\) vào giữa các phần tử của tập hợp.
  • Có \(n-1\) khoảng giữa các phần tử mà bạn có thể chèn dấu vào.

Ví dụ, với \(a=[3,4,5]\) bạn có thể thêm vào các dấu biến nó trở thành biểu thứ \(3+4-5\). Giá trị của biểu thức này là \(2\).

Hãy liệt kê hết các cách chèn dấu mà giá trị của biểu thức được tạo ra là \(m\).

Input

  • Dòng thứ nhất chứa hai số nguyên \(n\), \(m\) \((1 \leq n < 22, |m| \leq 5 * 10^9)\)
  • Dòng thứ hai chứa \(n\) số nguyên \(A_1, A_2, \dots, A_n\) (\(|A_i| \leq 10^9\))

Output

  • In ra nhiều dòng, mỗi dòng là một biểu thức hợp lệ. Các biểu thức in tăng dần theo thứ tự từ điển. Xem ví dụ để in đáp án được chính xác.

Example

Test 1

Input
5 0
0 -4 -1 0 -3
Output
0+4-1+0-3
0+4-1-0-3
0-4+1+0+3
0-4+1-0+3

root

Tàu cao tốc Metro

100 điểm

Có \(n\) điểm tập trung dân cư đông đúc. Các điểm này được đánh số từ \(1\) đến \(n\) \((1 \leq n \leq 10^4)\). Mạng lưới giao thông công cộng là \(m\) đường xe lửa cao tốc một ray, mỗi đường nối một cặp điểm dân cư và chạy hai chiều \((0 \leq m \leq 10^5)\), và mọi cặp điểm đều có thể đi đến được với nhau. Để tránh sự va chạm giữa các con tàu cao tốc khi chúng có thể đi ngược chiều trên cùng một đường, chính quyền thành phố quyết định sửa lại các con đường đó thành một chiều. Tuy nhiên, sau khi thay đổi thì lại có một vấn đề bất cập sảy ra, đó là: tồn tại các cặp điểm tập trung dân cư không thể đi đến được nhau.

Chính vì vậy, chính quyền lại thêm một quyết định nữa, đó là sẽ xây dựng thêm một số ít nhất các tuyến đường mới để đảm bảo từ một điểm bất kỳ có thể đi tới điểm bất kỳ khác bằng tàu cao tốc.
Ví dụ, với \(n = 5\) và hiện có 4 đường: \(1 - 2\), \(2 - 3\), \(1 - 4\) và \(4 - 5\). Để đảm bảo yêu cầu đã nêu, người ta cần xây dựng ít nhất \(2\) đường mới, chẳng hạn \(5 - 3\) và \(3 - 1\).

Yêu cầu: Cho \(n\), \(m\) và các cặp \((a, b)\) mô tả mạng giao thông sau khi đã sửa thành đường \(1\) chiều. Mỗi cặp \((a, b)\) xác định tồn tại đường tàu \(a - b\). Hãy xác định số lượng tối thiểu các đường cần xây dựng thêm.

Input

Vào từ file văn bản MONORAIL.INP:

  • Dòng đầu tiên chứa 2 số nguyên n và m,
  • Mỗi dòng trong m dòng tiếp theo chứa 2 số nguyên a và b.

Output

Đưa ra file văn bản MONORAIL.OUT một số nguyên -- số đường mới.

Example

Test 1

Input
5 4
1 2
2 3
1 4
4 5
Output
2

root

Đất trồng rau

100 điểm

Một mảnh vườn hình chữ nhật có kích thước \(a \times b\). Bên trong có một ao cá hình tròn bán kính \(r\) nằm trọn trong mảnh vườn. Hãy tính diện tích đất còn lại có thể trồng rau.

Số pi = 3.1415926535897

Input

Một dòng chứa ba số nguyên dương \(a\), \(b\), \(r\).

Output

In ra diện tích đất trồng rau, làm tròn đến phần nguyên.

Example

Test 1

Input
200 200 10
Output
39686
Xem thêm