Đ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.

Dễ

Tổng các số trên mỗi cột

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

staffagent

Cho bảng số nguyên gồm \(n\) hàng và \(m\) cột. Hãy tính tổng các số trên từng cột của bảng.

Input

  • Dòng đầu: hai số nguyên dương \(n, m\).
  • \(n\) dòng tiếp theo, mỗi dòng \(m\) số nguyên mô tả bảng \(A\).

Output

In ra \(m\) dòng; dòng thứ \(j\) là tổng các số ở cột thứ \(j\).

Constraints

  • \(1 \le n, m \le 110\)
  • \(|A_{i,j}| < 10^{16}\)

Sample Input

2 3
5 -1 0
2 2 8

Sample Output

7
1
8
Dễ

Sắp phím

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

root

Sau khi tìm ra mật khẩu là một xâu \(S\) có \(N\) kí tự, An quyết định mua một bàn phím chuyên dụng để nhập mật khẩu này. Do mật khẩu chỉ dùng \(M\) chữ cái đầu tiên trong bảng chữ cái tiếng Anh nên bàn phím chỉ cần \(M\) phím tương ứng. Do sở thích nên An bố trí tất cả \(M\) phím lên cùng một hàng, ví dụ với \(M\) \(=\) \(3\), có \(6\) cách bố trí khác nhau là : \(abc\), \(acb\), \(bac\), \(bca\), \(cab\), \(cba\).

An có thói quen nhập mật khẩu bằng đầu chiếc bút để ấn phím nên thời gian di chuyển từ \(S_{i}\) sang \(S_{i + 1}\) sẽ bằng khoảng cách giữa hai kí tự này trên bàn phím. Như vậy, tổng thời gian nhập là \(\sum_{i = 1}^{n - 1} (pos(S_{i}) - pos(S_{i + 1}))\), trong đó \(pos(c)\) là vị trí của kí tự \(c\) trên bàn phím. Ví dụ nếu xâu \(S\) là xâu \(aacabc\) và bàn phím được bố trí là \(bac\) thì tổng thời gian di chuyển là \(|2 - 2| + |2 - 3| + |3 - 2| + |1 - 2| + |1 - 3| = 5\).

Yêu cầu: Hãy tìm cách bố trí bàn phím sao cho tổng thời gian di chuyển là nhỏ nhất.

Input

Dòng đầu ghi \(2\) số nguyên dương \(N\) và \(M\) cách nhau một dấu cách.

Dòng thứ hai ghi \(N\) kí tự của xâu \(S\).

Output

Tổng thời gian di chuyển nhỏ nhất.

Example

Test 1

Input
6 3
aacabc
Output
5

Scoring

Có \(20\%\) số test có \(N \leq 100\), \(M \leq 2\).

Có \(20\%\) số test có \(N \leq 100\), \(M \leq 10\).

Có \(30\%\) số test có \(N \leq 100000\), \(M \leq 10\).

Có \(30\%\) số test có \(N \leq 100000\), \(M \leq 20\).

Dễ

Thám hiểm

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

root

Nhà khoa học Alex đang thực hiện một cuộc thám hiểm để nghiên cứu các mẫu vật tại \(n\) địa điểm khác nhau. Anh ấy bắt đầu chuyến đi từ địa điểm \(1\). Giữa một số địa điểm có các con đường bộ hai chiều, và Alex biết thời gian cần thiết để đi qua mỗi con đường.

Ngoài ra, giữa mỗi cặp địa điểm còn có một tuyến đường hàng không, nhưng do một sự cố kỹ thuật gần đây, thời gian di chuyển giữa hai địa điểm \(u\) và \(v\) bằng đường hàng không được tính bằng \((u - v)^2\).

Vì Alex không thích bay cho lắm, anh ta chỉ có thể sử dụng tối đa \(k\) chuyến bay trong suốt hành trình của mình. Mục tiêu của Alex là tìm thời gian di chuyển tối thiểu từ địa điểm \(1\) đến mỗi địa điểm khác.

Yêu cầu: Hãy giúp Alex tính toán thời gian di chuyển tối thiểu từ địa điểm \(1\) đến mỗi địa điểm trong số \(n\) địa điểm.

Input

  • Dòng đầu tiên của input chứa ba số nguyên \(n, m, k\) (\(2 \le n \le 10^5, 1 \le m \le 10^5, 0 \le k \le 20\)) lần lượt là số địa điểm, số con đường bộ và số chuyến bay tối đa mà Alex có thể sử dụng.
  • \(m\) dòng tiếp theo mô tả các con đường bộ. Mỗi dòng chứa ba số nguyên \(u, v, w\) (\(1 \le u, v \le n, u \ne v, 1 \le w \le 10^9\)) --- hai địa điểm được kết nối và thời gian di chuyển qua con đường đó. Lưu ý rằng một số cặp địa điểm có thể được kết nối bởi nhiều hơn một con đường.

Output

  • In ra \(n\) số nguyên, số thứ \(i\) là thời gian di chuyển tối thiểu đến địa điểm \(i\).

Example

Test 1

Input
3 1 2
1 3 1
Output
0 1 1 

Test 2

Input
4 3 1
1 2 3
2 4 5
3 4 7
Output
0 1 4 6 

Scoring

  • Subtask \(1\) (25% số điểm) : \(k = 0\).
  • Subtask \(2\) (25% số điểm) : \(n, m \leq 50\).
  • Subtask \(3\) (25% số điểm) : Đồ thị có dạng đường thẳng.
  • Subtask \(4\) (25% số điểm) : Không có ràng buộc gì thêm.
Dễ

Đoạn dễ thương

100 điểm 67% AC 2 đã giải

root

Linh là một học sinh rất yêu thích lập trình. Gần đây, Linh đang phát triển một robot có thể phân tích chuỗi số và tìm các đoạn "dễ thương".

Cụ thể, một đoạn con liên tiếp \((l, r)\) của dãy \(A_1, A_2, \ldots, A_n\) được gọi là dễ thương nếu:

  • \(max - min = k\), với \(max\) là giá trị lớn nhất và \(min\) là giá trị nhỏ nhất trong đoạn đó.

Linh muốn bạn giúp đếm xem trong dãy ban đầu có tất cả bao nhiêu đoạn con dễ thương.

\InputFile

  • Dòng đầu tiên gồm hai số nguyên \(n, k\) (\(1 \le n \le 5 \times 10^5\), \(0 \le k \le 10^9\)).
  • Dòng thứ hai gồm \(n\) số nguyên \(A_1, A_2, \ldots, A_n\) (\(-10^9 \le A_i \le 10^9\)).

\OutputFile

In ra một số nguyên duy nhất --- số lượng đoạn con dễ thương trong dãy.

\Scoring

  • Subtask 1 (40% số điểm): \(n \le 10^3\).
  • Subtask 2 (30% số điểm): \(n \le 10^5\).
  • Subtask 3 (30% số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
5 2
1 2 1 3 3
Output
6
Xem thêm