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

Đếm hoán vị

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

root

Cho hai số nguyên \(n, k\).
Hãy đếm số lượng hoán vị \(p_1, p_2, \dots, p_n\) của các số từ \(1\) đến \(n\) sao cho với mọi \(i\):
$
\left|p_i - i\right| \le k.
$
Kết quả lấy modulo \(10^9 + 7\).

\InputFile
Một dòng gồm hai số nguyên \(n, k\).

\OutputFile
In ra số lượng hoán vị thỏa mãn, modulo \(10^9 + 7\).

Điều kiện

  • \(1 \le n \le 1000\).
  • \(1 \le k \le 6\).

Example

Test 1

Input
4 2
Output
14
Dễ

Đường gấp khúc trên các hình chữ nhật

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

staffagent

Trên trục hoành \(Ox\) đặt \(n\) hình chữ nhật đứng sát nhau từ trái sang phải theo thứ tự chỉ số \(1, 2, \dots, n\). Hình chữ nhật thứ \(i\) có hai kích thước \(a_i\) và \(b_i\); ta được tự chọn cạnh nào nằm trên trục \(Ox\) (cạnh đó là chiều rộng \(w_i\), cạnh còn lại là chiều cao \(h_i\)). Việc chọn được thực hiện độc lập cho từng hình.

Xét đường gấp khúc chạy dọc phía trên chuỗi hình chữ nhật, xuất phát từ đỉnh trên trái của hình thứ nhất và kết thúc ở đỉnh trên phải của hình thứ \(n\): nó đi ngang theo cạnh trên của từng hình (dài \(w_i\)) và, tại chỗ hai hình kề nhau \(i\) và \(i+1\), đi thẳng đứng một đoạn dài \(|h_i - h_{i+1}|\) để chuyển sang cạnh trên của hình tiếp theo. Độ dài của đường gấp khúc là

\[\sum_{i=1}^{n} w_i + \sum_{i=1}^{n-1} |h_i - h_{i+1}|.\]

Hãy chọn cách đặt các hình chữ nhật để độ dài đường gấp khúc lớn nhất và in ra giá trị đó.

Input

  • Dòng đầu tiên chứa số nguyên \(n\).
  • \(n\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(a_i\) và \(b_i\).

Output

In ra độ dài lớn nhất của đường gấp khúc.

Constraints

  • \(1 \le n \le 10^4\)
  • \(1 \le a_i, b_i \le 10^9\)

Sample Input

4
3 6
5 2
4 4
1 7

Sample Output

28

Explanation

Chọn chiều cao lần lượt là \(3, 2, 4, 1\) (chiều rộng \(6, 5, 4, 7\)): tổng chiều rộng \(22\), tổng chênh lệch chiều cao \(1 + 2 + 3 = 6\), độ dài \(28\).

Dễ

Khu vực đất

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

root

Cho một lưới hình chữ nhật \(R \times C\) chứa các số 0 và 1. Số 1 biểu thị "đất", số 0 biểu thị "nước". Hai ô đất (số 1) được coi là thuộc cùng một khu vực nếu chúng kề nhau theo 4 hướng (trên, dưới, trái, phải). Viết chương trình áp dụng thuật toán DFS / BFS để đếm tổng số lượng các khu vực đất (các thành phần liên thông) trên lưới.

Input

  • Dòng đầu tiên là hai số nguyên dương \(R\) và \(C\) (\(1 \leq R, C \leq 500\)).
  • \(R\) dòng tiếp theo, mỗi dòng chứa \(C\) số nguyên 0 hoặc 1, cách nhau một dấu cách, mô tả lưới.

Output

Một dòng duy nhất chứa tổng số lượng khu vực đất.

Example

Test 1

Input
4 5
1 1 0 0 0
1 1 0 1 1
0 0 0 0 1
1 0 0 0 0
Output
3
Dễ

Tặng quà

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

root

Nhân dịp năm mới An quyết định mua tặng hai người bạn thân của mình mỗi người một món quà. Trong cửa hàng lưu niệm có \(N\) mặt hàng khác nhau, mặt hàng thứ \(i\) có giá \(a_{i}\), \(i=1,2,…,N\). Với số tiền mang theo là \(X\), An quyết định sẽ mua hai món quà khác nhau có tổng giá trị lớn nhất nhưng không vượt quá số tiền đang có.

Yêu cầu: Bạn hãy xác định xem số tiền mà An cần chi trả để mua quà là bao nhiêu?

Input

Dữ liệu vào từ tệp văn bản BAI3.INP:

--- Dòng đầu tiên chứa hai số nguyên dương \(N\) và \(X\) \((2≤ N ≤ 10^5,2 ≤ X ≤ 10^9)\)

--- Dòng thứ hai chứa \(N\) số nguyên dương \(a_1,a_2,…,a_N\) (\(1 ≤ a_{i} ≤ 10^9,i=1,2,…,N)\). Các số cách nhau \(1\) dấu cách.

Output

Kết quả ghi ra tệp văn bản BAI3.INP một số nguyên dương là số tiền mà An cần chi trả.

Example

Test 1

Input
6 18
5 3 10 2 4 9
Output
15
Note

Giải thích: Hai món quà khác nhau có tổng giá trị lớn nhất là 19, vượt quá số tiền mang theo. Vậy An sẽ chọn món quà thứ nhất và thứ ba. Tổng số tiền cần trả sẽ là: 5+10=15.

Xem thêm