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

Hấp thụ năng lượng

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

root

Bạn đang chơi một trò chơi điện tử nổi tiếng của Marvel có tên là Dr. Strange. Trong trò chơi này, bạn nhập vai một siêu anh hùng đang giải cứu thế giới bằng cách hấp thụ sức mạnh của các quái vật.

Bạn được cung cấp danh sách \(N\) quái vật. Quái vật thứ \(i\) xuất hiện tại thời điểm \(L_i\) và tồn tại cho đến thời điểm \(R_i\) (bao gồm cả \(L_i\) và \(R_i\)). Mỗi quái vật có một cấp độ sức mạnh \(P_i\). Nhiều quái vật có thể xuất hiện cùng một lúc.

Để chiến đấu, bạn thực hiện \(M\) lần hấp thụ sức mạnh liên tiếp theo thứ tự. Trước lần hấp thụ đầu tiên, bạn bắt đầu với một giá trị sức mạnh đã hấp thụ ban đầu là \(\text{Power}_0 = 1\) (hấp thụ từ chính bản thân bạn).

Đối với mỗi lần hấp thụ \(j = 1, 2, \ldots, m\), năng lượng khả dụng \(E_j\) của bạn tại thời điểm đó được tính theo công thức:

\[E_j = 1 + (D_j \cdot \text{Power}_{j-1} + A_j) \bmod F_j\]

Trong đó, \(D_j\) là hệ số độ bền (durability), \(A_j\) là hệ số nhanh nhẹn (agility), \(F_j\) là mức độ mệt mỏi (fatigue) ở lần hấp thụ \(j\), và \(\text{Power}_{j-1}\) là tổng sức mạnh quái vật đã hấp thụ được trong lần di chuyển trước đó (\(j-1\)).

Vì bạn là Dr. Strange, bạn có khả năng du hành thời gian. Tại thời điểm \(t_j\) của lần hấp thụ thứ \(j\), với năng lượng \(E_j\) này, bạn sẽ hấp thụ sức mạnh của \(E_j\) quái vật yếu nhất (những quái vật có cấp độ sức mạnh \(P\) nhỏ nhất) đang hiện diện. Nếu tại thời điểm đó có ít hơn \(E_j\) quái vật, bạn sẽ hấp thụ tất cả chúng. Việc hấp thụ sức mạnh của chúng chỉ ảnh hưởng đến năng lượng của bạn mà không làm yếu hay loại bỏ bất kỳ quái vật nào.

Gọi \(\text{Power}_j\) là tổng sức mạnh hấp thụ được trong lần di chuyển thứ \(j\). Nhiệm vụ của bạn là xác định giá trị của \(\text{Power}_1, \text{Power}_2, \ldots, \text{Power}_m\).

Input

  • Dòng đầu tiên chứa hai số nguyên \(N, M\) -- số lượng quái vật và số lần hấp thụ (\(1 \le N, M \le 10^5\)).
  • \(N\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(L_i, R_i, P_i\) -- thời điểm xuất hiện, thời điểm biến mất, và cấp độ sức mạnh của quái vật thứ \(i\) (\(1 \le L_i \le R_i \le 10^5\), \(1 \le P_i \le 10^7\)).
  • \(M\) dòng tiếp theo, mỗi dòng chứa bốn số nguyên \(t_j, D_j, A_j, F_j\) -- thời điểm thực hiện lần hấp thụ \(j\) và các hệ số tính toán năng lượng. Lưu ý rằng tất cả các giá trị \(t_j\) là một hoán vị của các số từ \(1\) đến \(M\) (\(1 \le t_j \le M\), \(0 \le D_j, A_j \le 10^5\), \(1 \le F_j \le 10^5\)).

Output

In ra \(M\) dòng. Mỗi dòng chứa một số nguyên duy nhất là tổng sức mạnh hấp thụ được trong lần di chuyển thứ \(j\).

Example

Test 1

Input
3 3
1 2 10
2 3 20
1 3 5
1 2 2 2
3 3 1 3
2 1 1 5
Output
5
25
15
Note
  • Lần 1 (Thời điểm \(t_1=1\)): Có 2 quái vật hiện diện (Power 10, 5). Ta có \(\text{Power}_0 = 1\). Năng lượng \(E_1 = 1 + (2 \times 1 + 2) \bmod 2 = 1\). Hấp thụ 1 quái vật yếu nhất (Power 5). \(\text{Power}_1 = 5\).
  • Lần 2 (Thời điểm \(t_2=3\)): Có 2 quái vật hiện diện (Power 20, 5). Ta có \(\text{Power}_1 = 5\). Năng lượng \(E_2 = 1 + (3 \times 5 + 1) \bmod 3 = 2\). Hấp thụ 2 quái vật yếu nhất (Power 5, 20). \(\text{Power}_2 = 5 + 20 = 25\).
  • Lần 3 (Thời điểm \(t_3=2\)): Có 3 quái vật hiện diện (Power 10, 20, 5). Ta có \(\text{Power}_2 = 25\). Năng lượng \(E_3 = 1 + (1 \times 25 + 1) \bmod 5 = 2\). Hấp thụ 2 quái vật yếu nhất (Power 5, 10). \(\text{Power}_3 = 5 + 10 = 15\).

Scoring

  • Subtask \(1\) (\(20\%\) số điểm) : \(N, M \leq 100\).
  • Subtask \(2\) (\(20\%\) số điểm) : \(N, M \leq 2000\).
  • Subtask \(3\) (\(20\%\) số điểm) : \(M = 1\).
  • Subtask \(4\) (\(20\%\) số điểm) : \(t_j < t_{j + 1}\) với mọi \(i = 1..M-1\).
  • Subtask \(5\) (\(20\%\) số điểm) : không có ràng buộc gì thêm.
Dễ

Xây nhà cao tầng

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

staffagent

Neko làm phụ hồ và có \(n\) căn phòng đúc sẵn để xếp chồng thành một tòa nhà (mỗi căn dùng nhiều nhất một lần, mỗi tầng đúng một căn). Căn phòng thứ \(i\) có sức chịu tải \(a_i\): nó chịu được nhiều nhất \(a_i\) căn phòng nằm phía trên nó (số phòng nằm trên trực tiếp và gián tiếp, tức là tổng số phòng ở các tầng cao hơn).

Neko có thể chọn ra một số căn phòng bất kỳ (không nhất thiết dùng hết) và sắp xếp thứ tự các tầng tùy ý. Hãy tính số tầng lớn nhất mà tòa nhà có thể đạt được.

Input

  • Dòng đầu tiên chứa số nguyên \(n\).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\).

Output

In ra một số nguyên là số tầng lớn nhất.

Constraints

  • \(1 \le n \le 10^5\)
  • \(0 \le a_i \le n\)

Sample Input 1

6
1 5 2 2 0 3

Sample Output 1

5

Sample Input 2

4
0 0 0 0

Sample Output 2

1

Explanation

  • Ví dụ 1: xếp từ trên xuống dưới các phòng có sức chịu tải \(0, 1, 2, 3, 5\) (bỏ một trong hai phòng có \(a = 2\)): phòng ở tầng thứ \(j\) (đếm từ trên, bắt đầu từ \(0\)) cần \(a \ge j\) nên đều thỏa mãn. Dùng cả \(6\) phòng thì không được: phòng có sức chịu tải \(0\) phải ở trên cùng, phòng có \(1\) ở tầng kế tiếp, và cứ thế hai phòng có \(a = 2\) không thể cùng chịu được vị trí thứ \(3\) trở xuống.
  • Ví dụ 2: mọi phòng đều không chịu được phòng nào ở trên nên chỉ dùng được \(1\) phòng.
Dễ

Liệt kê dãy ngoặc đúng

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

staffagent

Dãy ngoặc đúng được định nghĩa đệ quy: xâu rỗng là dãy ngoặc đúng; nếu \(A\) đúng thì \((A)\) đúng; nếu \(A, B\) đúng thì \(AB\) đúng. Ví dụ ()(()) và ((())) đúng, còn )(, (((())) và )()()( là sai.

Cho \(n\), hãy liệt kê tất cả dãy ngoặc đúng độ dài \(n\).

Input

  • Một số nguyên dương \(n\).

Output

  • Dòng đầu: số lượng dãy ngoặc đúng độ dài \(n\).
  • Các dòng sau: từng dãy theo thứ tự từ điển tăng dần (với ( < )). Nếu không có dãy nào thì chỉ in 0.

Constraints

  • \(1 \le n \le 20\)

Sample Input

6

Sample Output

5
((()))
(()())
(())()
()(())
()()()
Dễ

Bảng số

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

root

Bạn được cho một bảng số gồm \(n\) hàng và \(m\) cột. Trong mỗi ô của bảng, bạn được điền một con số từ \(1\) đến \(k\). Tuy nhiên có ràng buộc đặc biệt là trong mỗi hàng và mỗi cột của bảng thì phải chứa ít nhất \(1\) ô được điền số \(1\).

Nhiệm vụ của bạn là đếm số cách điền bảng trên sao cho thỏa mãn ràng buộc.

Input

  • Dòng đầu tiên chứa ba số nguyên \(n, m, k\) \((1 \leq n, m \leq 1000, 1 \leq k \leq 10^9)\), lần lượt là số hàng, số cột và số con số có thể sử dụng để điền vào bảng.

Output

In ra số cách điền bảng trên. Vì kết quả có thể rất lớn, in ra đáp án khi chia dư cho \(10^9 + 7\).

Example

Test 1

Input
2 2 3
Output
17

Test 2

Input
3 4 3
Output
101089

Scoring

  • Có \(20\%\) số điểm ứng với \(n \times m \le 20\).
  • Có \(30\%\) số điểm ứng với \(n, m \le 500\).
  • Có \(50\%\) số điểm ứng với \(n, m \le 1000\).
Xem thêm