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

root

Vị trí bị cấm

100 điểm

Cho một mảng số nguyên dương gồm \(N\) phần tử, các phần tử được đánh số liên tiếp từ \(1\) đến \(N\). Phần tử thứ \(i\) có giá trị là \(a_i\). Trong số \(N\) phần tử này, có \(M\) \((M \leq N)\) vị trí bị cấm, các vị trí này có giá trị nằm trong mảng \(b_1, b_2, ..., b_M\). Hãy in ra dãy \(a\) ra màn hình, chỉ in các vị trí không bị cấm.

Input

  • Dòng đầu tiên gồm số nguyên dương \(N\) - số lượng phần tử dãy \(a\) \((1 \leq N \leq 10^5)\).
  • Dòng thứ hai gồm \(N\) số nguyên dương \(a_1, a_2, ..., a_N\) \((1 \leq a_i \leq 10^5)\).
  • Dòng thứ ba gồm số nguyên dương \(M\) - số lượng vị trí bị cấm \((M \leq N)\).
  • Dòng thứ bốn gồm \(M\) số nguyên dương \(b_1, b_2, ..., b_M\) \((1 \leq b_i \leq N)\).

Output

  • In ra dãy \(a\) ra màn hình, chỉ in các vị trí không bị cấm.

Example

Test 1

Input
5
2 4 6 8 10
2
2 4
Output
2 6 10 

root

Chiếc bánh đẹp

100 điểm

Bạn có \(N\) miếng bánh. Mỗi miếng \(i\) có giá trị \(V_i\) và độ đậm màu \(C_i\).

Bạn cần chọn đúng \(M\) miếng khác nhau và sắp xếp chúng theo vòng tròn theo thứ tự bất kỳ. Độ đẹp của chiếc bánh được định nghĩa là

\[ \sum_{j=1}^{M} V_{k_j} \;-\; \sum_{j=1}^{M} \bigl|\,C_{k_j}-C_{k_{j+1}}\,\bigr| \]

trong đó \(k_1,k_2,\ldots,k_M\) là chỉ số các miếng được chọn theo thứ tự trên vòng tròn và \(k_{M+1}=k_1\).

Hãy tính độ đẹp lớn nhất có thể đạt được.

\InputFile

  • Dòng đầu chứa hai số nguyên \(N, M\) (\(3 \le N \le 2\cdot10^5\), \(3 \le M \le N\)).
  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(V_i, C_i\) (\(1 \le V_i, C_i \le 10^9\)).

\OutputFile
In ra một số nguyên duy nhất --- độ đẹp lớn nhất.

\Scoring

  • Subtask 1 (12%): \(N \le 10\).
  • Subtask 2 (15%): \(N \le 100\).
  • Subtask 3 (37%): \(N \le 2000\).
  • Subtask 4 (36%): Không có ràng buộc bổ sung.

\Examples
\beginexample
\exmp
5 3
2 1
4 2
6 4
8 8
10 16
6

\endexample

\Note
Một cách chọn là các miếng \(1, 3, 2\). Khi đó tổng giá trị \(=2+6+4=12\), tổng chi phí màu \(=|1-4|+|4-2|+|2-1|=6\)

\endproblem

root

Săn xe ưu đãi

100 điểm

Nhân dịp đầu năm, showroom xe hơi XYZ tổ chức chương trình bán xe giảm giá cực lớn. Các mẫu xe được xếp theo thứ tự từ 1 đến \(n\), với mỗi mẫu xe có mức giá \(p_i\) (đơn vị triệu đồng).

Có \(m\) khách hàng lần lượt đến tham dự. Khách hàng thứ \(i\) mang theo số tiền \(t_i\) (triệu đồng), và quyết định chỉ tham khảo các mẫu xe từ vị trí \(l_i\) đến \(r_i\).

Tại mỗi mẫu xe, khách hàng sẽ mua được nhiều chiếc nhất có thể nếu còn đủ tiền, rồi mới tiếp tục sang mẫu xe kế tiếp trong khoảng được chọn. Việc mua xe diễn ra tuần tự từ trái sang phải.

Nhiệm vụ của bạn là xác định, sau chuyến săn xe, mỗi khách hàng còn lại bao nhiêu tiền.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(m\) (\(1 \leq n, m \leq 2 \times 10^5\)) --- số lượng mẫu xe và số lượng khách hàng.
  • Dòng thứ hai chứa \(n\) số nguyên \(p_1, p_2, \ldots, p_n\) (\(1 \leq p_i \leq 10^{18}\)) --- giá của từng mẫu xe (triệu đồng).
  • \(m\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(t_i, l_i, r_i\) (\(1 \leq l_i \leq r_i \leq n\), \(1 \leq t_i \leq 10^{18}\)) --- số tiền mang theo và khoảng mẫu xe khách hàng chọn.

Output

  • Gồm \(m\) dòng, mỗi dòng ghi số tiền còn lại của từng khách hàng sau khi mua xe, theo đúng thứ tự trong input.

Example

Test 1

Input
5 3
500 300 200 400 600
800 5 5
1070 1 4
700 3 5
Output
200
70
100
Note
  • Khách hàng thứ nhất chỉ tham khảo mẫu xe thứ 5 (giá 600 triệu), mua được 1 xe, còn dư 800 - 600 = 200 triệu.
  • Khách hàng thứ hai có 1070 triệu đồng, tham khảo mẫu từ 1 đến 4, mua được nhiều nhất, còn dư 70 triệu.
  • Khách hàng thứ ba có 700 triệu, tham khảo từ mẫu 3 đến 5, mua xe cho đến khi hết tiền, còn lại 100 triệu.

Scoring

  • \(50\%\) số test có \(n, m \leq 5000\), \(p_i, t_i \leq 10^9\).
  • \(50\%\) số test có \(n, m \leq 2 \times 10^5\), \(p_i, t_i \leq 10^{18}\).

root

Chia đường

100 điểm

Tại vương quốc Verde, nổi tiếng với hệ thống giao thông xanh và thông minh, có \(N\) khu vực canh tác được kết nối bằng \(N - 1\) con đường hai chiều. Cấu trúc giao thông hiện tại tạo thành một mạng lưới cây -- tức là luôn tồn tại đúng một đường đi giữa hai khu vực bất kỳ.

Tuy nhiên, sau nhiều năm quản lý và tối ưu hoá mạng lưới, nhà nghiên cứu giao thông trưởng của vương quốc -- ông Hiroshi -- nhận ra rằng hệ thống cây đang dần trở nên phức tạp, khó bảo trì, và không còn hiệu quả trong việc vận hành.

Vì thế, Hiroshi quyết định chia toàn bộ hệ thống con đường thành nhiều đoạn đường liên tiếp, mỗi đoạn là một đường đi ngắn nhất giữa \(2\) đỉnh bất kì. Lưu ý, mỗi con đường trong \(N-1\) con đường thuộc đúng chính xác một đường đi. Mục tiêu của Hiroshi là đảm bảo rằng tất cả các đoạn đường đều có độ dài ít nhất là \(K\), để những người giám sát đoạn đường này không lười biếng và buộc phải làm việc với các đoạn đủ dài.

Hãy giúp Hiroshi tìm giá trị lớn nhất của số nguyên dương \(K\) sao cho có thể chia toàn bộ hệ thống con đường thành một số đoạn mà mỗi đoạn đều có độ dài ít nhất là \(K\).

Input

Dòng đầu tiên chứa số nguyên \(N\) \((2 \le N \le 10^5)\) --- số lượng khu vực.

Mỗi dòng trong \(N - 1\) dòng tiếp theo chứa hai số nguyên \(u\) và \(v\) \((1 \le u, v \le N)\) --- biểu thị có một con đường nối giữa khu vực \(u\) và \(v\).

Output

In ra một số nguyên duy nhất --- độ dài lớn nhất \(K\) thỏa mãn yêu cầu.

Example

Test 1

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

Scoring

  • Subtask 1 (20 điểm): \(N \le 100\)
  • Subtask 2 (80 điểm): Không có ràng buộc gì thêm.
Xem thêm