Đ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

Sắp xếp xâu con

100 điểm

Cho ba xâu \(A, B, C\), thực hiện \(q\) truy vấn trên ba xâu này như sau:

  • Mỗi truy vấn gồm hai số \(l, r\)
  • Gọi \(x = A_{l},A_{l+1}...A_{r}\) ; \(y = B_{l}B_{l+1}...B_{r}\); \(z = C_{l}C_{l+1}...C_{r}\)
  • Sắp xếp ba xâu \(x, y, z\) thành \(x′,y′,z′\)
  • Gán lại các kí tự của xâu \(A\) từ \(l\) đến \(r\) thành \(x′\) , gán các kí tự của xâu \(B\) từ \(l\) đến \(r\) thành \(y′\) , gán các kí tự của xâu \(C\) từ \(l\) đến \(r\) thành \(z′\).

Hãy đưa ra ba xâu \(A, B, C\) sau khi thực hiện xong \(q\) truy vấn.

Input

Dòng đầu chứa số \(n, q\) \((1 \leq n,q \leq 10^5)\)

Ba dòng tiếp theo chứa ba xâu \(A,B,C\) có cùng độ dài chỉ chứa các kí tự thường.

\(q\) dòng tiếp theo, mỗi dòng chứa hai số \(l,r\) \((1 \leq l \leq r \leq n)\) mô tả các truy vấn.

Output

Đưa ra ba xâu trên ba dòng sau khi thực hiện xong các truy vấn.

Example

Test 1

Input
6 6
aabbcc
bcacab
cbcaba
1 1
2 2
3 3
4 4
5 5
6 6
Output
aaaaaa
bbbbbb
cccccc

Test 2

Input
3 1
aba
aab
aac
1 3
Output
aab
aac
aba

Scoring

\(30\%\) số điểm có \(n, q \leq 10^3\).

\(30\%\) số điểm có \(n, q \leq 10^4\).

\(40\%\) số điểm không có ràng buộc gì thêm.

root

Câu 3: Tổng liên tiếp (5.0 điểm)

100 điểm

Cho một dãy \(A\) gồm \(N\) số nguyên \(a_1, a_2, \dots, a_N\).

Yêu cầu: Hãy tìm đoạn con \([l, r]\) \((1 \le l \le r \le N)\) gồm các phần tử liên tiếp \(a_l, a_{l+1}, \dots, a_{r-1}, a_r\) của dãy \(A\) sao cho tổng \(a_l + a_{l+1} + \dots + a_{r-1} + a_r\) là lớn nhất.

Input

Đọc từ file MAXS.INP gồm:

  • Dòng đầu tiên chứa số nguyên dương \(N\) \((N \le 10^5)\) là số phần tử trong dãy;
  • Dòng tiếp theo chứa \(N\) số nguyên \(a_1, a_2, \dots, a_N\) \((|a_i| \le 10^9, 1 \le i \le N)\).

Output

Ghi ra file MAXS.OUT một số nguyên là tổng lớn nhất tìm được.

Example

Test 1

Input
6
2 -3 8 4 -5 3
Output
12
Note

Giải thích: \(a_3 + a_4 = 8 + 4 = 12\).

Scoring

  • 20% số test: \(N \le 100\)
  • 20% số test: \(N \le 10^4\)
  • 20% số test: \(N \le 10^5\) và \(a_i \ge 0\) \((1 \le i \le N)\)
  • 40% số test: \(N \le 10^5\)

root

Khoảng cách trên cây

100 điểm

Cây là đồ thị vô hướng liên thông không chứa chu trình. Một cây gồm \(n\) đỉnh luôn có \(n - 1\) cạnh và giữa hai đỉnh phân biệt trên cây luôn tồn tại đường đi đơn duy nhất. Cho một cây gồm \(n\) đỉnh và mỗi cạnh của cây có một độ dài riêng. Bạn cần trả lời \(q\) câu hỏi, mỗi câu hỏi gồm hai đỉnh \(u, v\) và bạn cần cho biết khoảng cách giữa hai đỉnh \(u\) và \(v\). Nói cách khác, bạn cần tính tổng độ dài các cạnh thuộc đường đi đơn duy nhất từ \(u\) đến \(v\).

Input

Dòng đầu tiên chứa số nguyên \(θ\) \((1 ≤ θ ≤ 3)\) --- số thứ tự của subtask chứa test này.

Dòng thứ hai chứa một số nguyên \(n\) \((1 ≤ n ≤ 3·10^5)\) --- số đỉnh của cây.

\(n - 1\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(u\), \(v\) và \(c\) \((1 ≤ u, v ≤ n, 1 ≤ c ≤ 10^9)\) cho biết trên cây có một cạnh nối hai đỉnh \(u\) và \(v\) với độ dài \(c\).

Dòng tiếp theo chứa một số nguyên \(q\) \((1 ≤ q ≤ 3·10^5)\) --- số câu hỏi cần trả lời.

\(q\) dòng cuối cùng, mỗi dòng chứa hai số nguyên \(u\) và \(v\) \((1 ≤ u, v ≤ n)\) thể hiện một câu hỏi.

Output

In ra \(q\) số nguyên là khoảng cách giữa hai đỉnh \(u\) và \(v\) trên cây trong mỗi câu hỏi.

Example

Test 1

Input
1
8
1 2 2
2 6 2
1 3 7
3 4 1
3 5 9
4 7 9
1 8 7
3
5 7
6 1
3 8
Output
19
4
14

Scoring

Subtask \(1\) (\(35\) điểm): \(n, q ≤ 300\).

Subtask \(2\) (\(25\) điểm): Cây có \(n - 1\) cạnh \((1, 2), (2, 3), ..., (n - 1, n)\).

Subtask \(3\) (\(40\) điểm): Không có ràng buộc gì thêm.

root

Hiệu lớn nhất

100 điểm

Bạn được cho một mảng gồm \(n\) số nguyên. Mục tiêu của bạn là tìm hai chỉ số \(i\) và \(j\) trong mảng sao cho \(i\) nhỏ hơn \(j\), và hiệu \(a[j] - a[i]\) đạt giá trị lớn nhất.

Input

Dữ liệu vào được cung cấp từ đầu vào chuẩn theo định dạng sau:

  • Dòng đầu tiên chứa một số nguyên dương \(n\) (\(2 \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^3\)).

Output

In ra một số nguyên duy nhất là giá trị lớn nhất của hiệu \(a[j] - a[i]\) tìm được.

Example

Test 1

Input
3
1 2 3
Output
2
Xem thêm