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

Đường đi trên lưới

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

root

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. Ô ở hàng \(x\) và cột \(y\) được kí hiệu là ô \((x, y)\).

Xuất phát từ góc trái trên \((1, 1)\), bạn cần đi xuống góc phải dưới \((r, c)\). Ở mỗi bước, bạn được di chuyển từ vị trí hiện tại (giả sử là ô \((x, y)\)) một bước theo một trong ba hướng: sang phải (sang ô \((x, y + 1)\)), xuống dưới (sang ô \((x + 1, y)\)) hoặc chéo xuống (sang ô \((x + 1, y + 1)\)), như hình minh họa dưới đây:

\begincenter

\endcenter

Bạn được cho \(q\) câu hỏi, mỗi câu hỏi gồm hai số \(r\) và \(c\). Hãy đếm số cách đi từ ô \((1, 1)\) tới ô \((r, c)\) ở từng câu hỏi. Do kết quả có thể rất lớn, bạn chỉ cần in ra đáp số theo modulo \(998244353\).

Input

Dòng đầu tiên chứa số nguyên \(q\) \((1 \leq q \leq 10^5)\) cho biết số câu hỏi.

\(q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(r\) và \(c\) \((1 \leq r, c \leq 2300)\) thể hiện một câu hỏi.

Output

Với mỗi câu hỏi, in ra một số nguyên là số cách đi từ ô \((1, 1)\) đến ô \((r, c)\) modulo \(998244353\).

Example

Test 1

Input
2
2 2
3 3
Output
3 13 
Note

Hình vẽ dưới đây mô tả các cách đi từ ô \((1, 1)\) tới ô \((3, 3)\) trong bảng gồm \(3\) hàng và \(3\) cột.

\begincenter

\endcenter

Scoring

  • Subtask \(1\) (\(33\) điểm): \(q = 1\) và \(r, c \leq 10\)

  • Subtask \(2\) (\(17\) điểm): \(q \leq 10^5\) và \(r, c \leq 10\)

  • Subtask \(3\) (\(30\) điểm): \(q = 1\) và \(r, c \leq 2300\)

  • Subtask \(4\) (\(20\) điểm): \(q \leq 10^5\) và \(r, c \leq 2300\)

Dễ

Vé tàu hỏa

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

staffagent

Một tuyến tàu hỏa đi qua \(N\) nhà ga nằm trên một đường thẳng, đánh số từ \(1\) (ga xuất phát) đến \(N\) (ga cuối) theo thứ tự tăng dần của khoảng cách tới ga \(1\). Ga thứ \(i\) cách ga \(1\) một khoảng \(p_i\) (với \(p_1 = 0\)).

Giá vé giữa hai ga cách nhau khoảng \(X\) chỉ phụ thuộc vào \(X\):

  • \(X \le L_1\): giá \(C_1\);
  • \(L_1 < X \le L_2\): giá \(C_2\);
  • \(L_2 < X \le L_3\): giá \(C_3\);
  • \(X > L_3\): không có vé bán trực tiếp.

Hành khách chỉ được giữ đúng một vé trên tàu; đến ga xuống thì vé bị hủy và muốn đi tiếp phải mua vé mới (tại ga đó). Cho hai ga \(s\) và \(f\), hãy tìm tổng chi phí vé nhỏ nhất để đi từ ga \(s\) đến ga \(f\) (đi giữa hai ga theo cả hai chiều đều tính như nhau; nếu \(s = f\) thì chi phí là \(0\)).

Input

  • Dòng 1: sáu số nguyên \(L_1, L_2, L_3, C_1, C_2, C_3\).
  • Dòng 2: số nguyên \(N\).
  • Dòng 3: hai số nguyên \(s, f\).
  • Dòng 4: \(N-1\) số nguyên \(p_2, p_3, \dots, p_N\).

Output

In ra chi phí vé nhỏ nhất.

Constraints

  • \(1 \le L_1 \le L_2 \le L_3 \le 10^9\), \(1 \le C_1 \le C_2 \le C_3 \le 10^9\)
  • \(2 \le N \le 10^4\), \(1 \le s, f \le N\)
  • \(0 < p_2 < p_3 < \dots < p_N < 10^9\)
  • Hai ga liên tiếp cách nhau không quá \(L_3\) (luôn có đường đi).

Sample Input

4 7 10 15 25 35
7
6 2
2 5 9 12 14 20

Sample Output

50

Explanation

Vị trí các ga: \(0, 2, 5, 9, 12, 14, 20\). Đi từ ga 2 (vị trí 2) tới ga 6 (vị trí 14): ga 2 → ga 4 (khoảng cách \(7\), giá \(25\)) rồi ga 4 → ga 6 (khoảng cách \(5\), giá \(25\)), tổng \(50\).

Dễ

Dãy con cực đại

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

root

Bạn được cho một dãy \(A\) gồm \(N\) số nguyên, đánh số từ \(1\) đến \(N\).

Với một số \(X\) được cho, bạn hãy tìm tập \(k\) số trong dãy \(A\) sao cho điều kiện sau được thỏa mãn:

  • Gọi \(k\) chỉ số lần lượt là \(1 \le i_1 \le i_2 \le \ldots \le i_k \le N\).
  • \(X + a[i_1] \ge 0\)
  • \(X + a[i_1] + a[i_2] \ge 0\)
  • …
  • \(X + a[i_1] + a[i_2] + \ldots + a[i_k] \ge 0\)

Yêu cầu tìm \(k\) lớn nhất với \(X\) bất kì.

Để làm bài toán hóc búa hơn, bạn được cho \(Q\) truy vấn, mỗi truy vấn là số \(X\) mà bạn phải trả lời.

Input

  • Dòng đầu tiên chứa ba số nguyên \(N\), \(Q\) (\(1 \le N \le 2 \times 10^3, 1 \le Q \le 3 \times 10^5\)).
  • Dòng thứ hai chứa \(N\) số nguyên \(a_1, a_2, \dots, a_N\) (\(-10^9 \leq a_i \leq 10^9\)).
  • Dòng thứ ba chứa \(Q\) số nguyên \(X_1, X_2, \dots, X_K\) (\(-10^{14} \leq X_i \leq 10^{14}\)).

Output

In ra \(Q\) số nguyên là đáp án của bài toán trên một dòng.

Example

Test 1

Input
7 3
-3 0 4 -7 -4 -5 4
2 11 15
Output
4 6 7 

Test 2

Input
8 4
-2 -2 0 7 1 -9 9 -7
1 1 20 3
Output
6 6 8 7 

Scoring

  • Subtask 1 (13% số điểm): Dãy \(A\) tăng hoặc giảm dần.
  • Subtask 2 (10% số điểm): \(N \leq 20\), \(Q \leq 30\).
  • Subtask 3 (15% số điểm): \(N \leq 20\).
  • Subtask 4 (25% số điểm): \(Q \leq 3000\).
  • Subtask 5 (37% số điểm): Không có ràng buộc gì thêm.
Dễ

Segment tree lazy 1

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

staffagent

Cho một mảng gồm \(n\) số nguyên. Nhiệm vụ của bạn là xử lý \(q\) truy vấn, mỗi truy vấn thuộc một trong hai loại sau:

  • Loại 1: \(1 \; x \; y \; val\) — Tăng giá trị của các phần tử từ chỉ số \(x\) đến \(y\) thêm \(val\) đơn vị.
    \((1 \le x \le y \le n, 1 \le val \le 10^9)\)
  • Loại 2: \(2 \; l \; r\) — In ra giá trị lớn nhất của các phần tử trong đoạn từ chỉ số \(l\) đến \(r\).
    \((1 \le l \le r \le n)\)

Với mỗi truy vấn loại 2, hãy in ra kết quả trên một dòng.

Input

  • Dòng đầu chứa số nguyên \(n\) — số phần tử trong mảng \((1 \le n \le 10^5)\)
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) \((|a_i| \le 10^9)\)
  • Dòng thứ ba chứa số nguyên \(q\) — số truy vấn \((1 \le q \le 10^5)\)
  • \(q\) dòng tiếp theo, mỗi dòng mô tả một truy vấn theo định dạng ở trên.

Output

  • Với mỗi truy vấn loại 2, in ra kết quả trên một dòng.

Sample Input 1

5
1 2 3 4 5
4
2 2 4
1 3 5 2
2 2 4
2 1 5

Sample Output 1

4
6
7
Xem thêm