Điều hướng chính

Nhắn tin NQ Coding

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.

Dễ

Tháp cát (Bản 1)

100 điểm 0% AC 0 đã giải

root

Từ xa xưa, tại vùng đất Sa Ngọc, người dân tôn thờ những ngọn tháp được xây dựng từ cát linh thiêng. Mỗi ngọn tháp là một bảng đá đứng gồm \(n\) tầng và \(m\) cột, trong đó có những ô chứa khối cát thiêng và những ô trống.

Theo truyền thuyết, để khơi dậy nguồn năng lượng từ các tháp, người thực hiện nghi lễ phải làm rơi các khối cát xuống các bàn thờ ở chân cột. Mỗi cột có một bàn thờ riêng, và để hoàn thành nghi lễ, số lượng khối cát rơi xuống mỗi bàn thờ phải đạt ít nhất \(a_i\) khối.

Tuy nhiên, việc làm rơi cát không đơn giản. Khi một khối cát ở ô \((i, j)\) bị đánh thức, nó rơi xuống, đi qua toàn bộ các ô bên dưới trong cùng cột. Trên đường đi, nếu có khối cát nào nằm kề bên theo 4 hướng (trái, phải, trên, dưới), chúng cũng sẽ bị đánh thức và bắt đầu rơi, tạo thành một chuỗi phản ứng dây chuyền.

Trong mỗi lượt hành lễ, bạn chỉ có thể đánh thức một khối cát bất kỳ.

Bạn được giao nhiệm vụ tìm số lượt hành lễ tối thiểu để hoàn tất nghi lễ, tức là để mỗi cột thu đủ số lượng khối cát quy định.

Input

Dòng đầu tiên chứa hai số nguyên dương \(n\) và \(m\) \((1 \le n \cdot m \le 400,000)\) --- số hàng và số cột của bảng tháp cát.

Mỗi dòng trong \(n\) dòng tiếp theo chứa đúng \(m\) ký tự, mô tả trạng thái của bảng. Ký tự "." biểu thị một ô trống, còn ký tự "#" biểu thị một ô chứa cát.

Dòng cuối cùng chứa \(m\) số nguyên không âm \(a_1, a_2, \ldots, a_m\) \((0 \le a_i \le n)\) --- số lượng cát tối thiểu cần phải rơi xuống bàn thờ ở mỗi cột tương ứng.

Lưu ý ở bản này: Đảm bảo rằng \(a_i\) đúng bằng số lượng cát có sẵn trong cột \(i\).

Output

In ra một số nguyên duy nhất --- số lượt đánh thức tối thiểu cần thực hiện để hoàn thành nghi lễ cho toàn bộ tháp.

Example

Test 1

Input
5 7
#....#.
.#.#...
#....#.
#....##
#.#....
4 1 1 1 0 3 1
Output
3
Note

Giải thích test ví dụ:
Các hàng được đánh số từ \(1\) đến \(n\) và khi một ô cát rơi xuống, nó sẽ ảnh hưởng đến những ô thuộc hàng lớn hơn.

Khi đó ta chọn tác động vào ô \((1,1)\), \((1,6)\), và \((2, 4)\).

Dễ

Đoạn đường

100 điểm 100% AC 1 đã giải

staffagent

Con đường có \(n\) tòa nhà, tòa nhà thứ \(i\) có độ cao là \(h_i\) \((i=1..n)\).
Một đoạn đường đẹp nhất là một đoạn gồm các tòa nhà liên tiếp sao cho độ cao trung bình của các tòa nhà trong đoạn đó đúng bằng \(k\).

Yêu cầu: Hãy tìm đoạn đường gồm nhiều tòa nhà liên tiếp nhất sao cho đoạn đó là đoạn đường đẹp nhất.

Input

  • Dòng thứ nhất ghi hai số nguyên \(n\) và \(k\) \((1 \le n \le 10^5,\ 0 \le k \le 10^9)\).
  • Dòng thứ hai ghi \(n\) số nguyên \(h_1,h_2,\ldots,h_n\) \((0 < h_i \le 10^9)\).

Output

  • Nếu tồn tại đoạn đường đẹp nhất, ghi ra độ dài đoạn đường đó.
  • Nếu không có đoạn đường đẹp nhất thì ghi ra duy nhất số \(0\).

Scoring

  • 50% số test tương ứng: \(1 < n \le 2 \cdot 10^2\).
  • 30% số test tương ứng: \(2 \cdot 10^2 < n \le 2 \cdot 10^3\).
  • 20% số test tương ứng: \(2 \cdot 10^3 < n \le 10^5\).

Sample Input 1

4 5
2 4 5 6

Sample Output 1

3
Dễ

TRAUANCO

100 điểm 50% AC 3 đã giải

staffagent

Một cánh đồng có \(N\) bó cỏ, bó thứ \(i\) nằm ở vị trí \(x_i\) (mét) trên một đường thẳng. Có \(K\) con trâu cần được buộc ăn cỏ sao cho: mỗi con trâu buộc tại đúng một bó cỏ (hai con trâu không buộc chung một bó) và khoảng cách giữa hai con trâu bất kỳ phải ít nhất là \(D\) mét.

Yêu cầu: Xác định khoảng cách \(D\) lớn nhất có thể để vẫn buộc được đủ \(K\) con trâu.

Input

  • Dòng đầu: \(N\) và \(K\) (\(2 \le K \le N \le 10^5\)).
  • Dòng thứ hai: \(x_1, x_2, \ldots, x_N\) (\(0 \le x_i \le 10^9\); các vị trí có thể trùng nhau).

Output

Một số nguyên duy nhất là khoảng cách \(D\) lớn nhất.

Scoring

  • \(50\%\) số điểm có \(\max(x_i) \le 10^3\) và \(N \le 10^3\).
  • \(50\%\) còn lại không có ràng buộc gì thêm.

Sample Input 1

5 3
1 2 8 4 9

Sample Output 1

3

Notes

Buộc trâu tại các vị trí \(1, 4, 8\).

Dễ

Nén chuỗi

100 điểm 0% AC 0 đã giải

root

Bạn là một kỹ sư phần mềm tại một công ty phát triển hệ thống gửi email tự động. Để tiết kiệm băng thông và tăng hiệu suất, bạn muốn nén các chuỗi ký tự lặp lại trong email bằng một phương pháp nén đơn giản.

Một chuỗi được nén hợp lệ sẽ có dạng như sau:

  • Một chuỗi con được lặp lại liên tiếp \(D\) lần được viết thành \(D(S)\), trong đó \(S\) là chuỗi con lặp lại và \(D \ge 2\).

  • Chuỗi được cấu thành từ hai chuỗi \(A\) và \(B\) hợp lệ, khi đó chuỗi \(AB\) là hợp lệ.

  • Chuỗi được giữ nguyên so với chuỗi gốc - không thay đổi.

\end itemize

Ví dụ: Chuỗi abababaaaaa có thể được nén thành \(3(ab)5(a)\).

Yêu cầu của bạn là tìm ra cách nén ngắn nhất cho một chuỗi đã cho. Nếu có nhiều cách có cùng độ dài ngắn nhất, chọn cách có thứ tự từ điển nhỏ hơn.

Input

Dữ liệu vào gồm hai dòng:
\begin itemize

  • Dòng đầu tiên chứa một số nguyên \(n\) (\(1 \le n \le 200\)) --- độ dài chuỗi.
  • Dòng thứ hai chứa chuỗi đầu vào \(s\) gồm đúng \(n\) ký tự thường.
    \end itemize

Output

Ghi ra chuỗi đã nén ngắn nhất theo định dạng trên.

Example

Test 1

Input
10
zzzzzzzzzz
Output
10(z)

Test 2

Input
4
aaaa
Output
4(a)

Test 3

Input
3
bbb
Output
bbb

Test 4

Input
24
abababcaaaaaabababcaaaaa
Output
2(3(ab)c5(a))

Scoring

  • Có 50% số điểm ứng với \(1 \le N \le 15\).
  • Có 20% số điểm ứng với \(1 \le N \le 70\).
  • 30% số điểm còn lại không có ràng buộc gì thêm.
Xem thêm