Đ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

Đảo kho báu

100 điểm

Trên hòn đảo hình vòng tròn, có \(n\) chiếc rương báu vật xếp thành một vòng. Mỗi chiếc rương được đánh số từ \(0\) đến \(n - 1\) và chứa một số lượng vàng ban đầu là \(a_0, a_1, \ldots, a_{n-1}\).

Cướp biển Lập trình viên rất quan tâm đến giá trị của kho báu và thường xuyên thực hiện các hành động sau:

  • inc(lf, rg, v) --- Thêm \(v\) thỏi vàng vào mỗi chiếc rương từ vị trí \(lf\) đến \(rg\) (tính cả hai đầu).
  • rmq(lf, rg) --- Truy xuất thông tin: rương nào có ít vàng nhất trong đoạn từ \(lf\) đến \(rg\)?

Vì các rương được xếp thành vòng tròn, nên đoạn từ \(lf\) đến \(rg\) có thể được hiểu như sau:

  • Nếu \(lf \le rg\): đoạn gồm các chỉ số từ \(lf\) đến \(rg\).
  • Nếu \(lf > rg\): đoạn gồm các chỉ số từ \(lf\) đến \(n - 1\), rồi tiếp tục từ \(0\) đến \(rg\).

Hãy giúp Lập trình viên thực hiện tuần tự các thao tác, và ghi lại kết quả mỗi lần anh ta truy vấn rmq!

Input

  • Dòng đầu chứa số nguyên \(n\) \((1 \leq n \leq 2 \cdot 10^5)\) --- số lượng rương.
  • Dòng thứ hai chứa \(n\) số nguyên \(a_0, a_1, \ldots, a_{n-1}\) \((-10^6 \le a_i \le 10^6)\) --- số lượng vàng ban đầu ở mỗi rương.
  • Dòng thứ ba chứa số nguyên \(m\) \((0 \le m \le 2 \cdot 10^5)\) --- số truy vấn.
  • \(m\) dòng tiếp theo, mỗi dòng chứa một truy vấn, có thể ở một trong hai dạng:

  • lf rg --- Truy vấn loại rmq.

  • lf rg v --- Truy vấn loại inc.

Output

Với mỗi truy vấn loại rmq, in ra một dòng chứa số lượng vàng ít nhất trong đoạn được hỏi.

Example

Test 1

Input
4
1 2 3 4
4
3 0
3 0 -1
0 1
2 1
Output
1
0
0

root

Câu 1 (6.0 điểm) : Tọa độ

100 điểm

Robot đang ở điểm \((0, 0)\) nhận được dòng lệnh di chuyển chứa các kí tự \(\{E, S, W, N\}\):

  • Lệnh \(E\): \((x, y) \to (x + 1, y)\) (Đông)
  • Lệnh \(S\): \((x, y) \to (x, y - 1)\) (Nam)
  • Lệnh \(W\): \((x, y) \to (x - 1, y)\) (Tây)
  • Lệnh \(N\): \((x, y) \to (x, y + 1)\) (Bắc)

Xác định tọa độ robot sau khi thực hiện dòng lệnh.

Input

Vào từ file COOR.INP một dòng chứa xâu \(s\) (\(1 \le |s| \le 10^5\)) chỉ gồm các kí tự \(\{E, S, W, N\}\).

Output

Ghi ra file COOR.OUT hai số nguyên là hoành độ và tung độ của robot.

Example

Test 1

Input
ENENWWWS
Output
-1 1

Scoring

  • 30% số test: \(|s| \le 100\)
  • 30% số test: Tất cả kí tự của \(s\) giống nhau
  • 40% số test: Không có thêm ràng buộc

root

Bộ ba

100 điểm

Trong một lớp học có \(3 \times n\) học sinh, được chia đều thành 3 tổ. Ba dãy số nguyên dương \(a\), \(b\), \(c\) (mỗi dãy có độ dài là \(n\)) lần lượt biểu diễn chiều cao của học sinh trong tổ 1, tổ 2 và tổ 3.

Thầy chủ nhiệm tổ chức trò chơi "Ba người" nhân ngày 26/3. Mỗi lượt chơi cần chọn ra 3 học sinh (\(i,j,k\) từ tổ \(1\), \(2\), và \(3\)), mỗi người thuộc một tổ khác nhau. Ba học sinh này phải thỏa mãn điều kiện chiều cao như sau:

  • Học sinh tổ 1 thấp hơn học sinh tổ 2: \(a_i < b_j\)

  • Học sinh tổ 2 thấp hơn học sinh tổ 3: \(b_j < c_k\)

  • Học sinh tổ 3 cao hơn học sinh tổ 1: \(c_k > a_i\)

Hỏi có bao nhiêu cách chọn bộ ba học sinh thỏa mãn các điều kiện trên?

Input

Dòng đầu tiên là số nguyên dương \(n\) - số lượng học sinh từng tổ.

Dòng thứ hai là dãy \(a_1,a_2,\ldots,a_n\) - chiều cao các học sinh tổ \(1\).

Dòng thứ ba là dãy \(b_1,b_2,\ldots,b_n\) - chiều cao các học sinh tổ \(2\).

Dòng thứ tư là dãy \(c_1,c_2,\ldots,c_n\) - chiều cao các học sinh tổ \(3\).

Output

Kết quả bài toán.

Example

Test 1

Input
3
1 1 1
2 2 2
3 3 3
Output
27

Test 2

Input
2
1 5
2 4
3 6
Output
3

Scoring

  • 30% số test có \(n \leq 10^2\).
  • 30% số test có \(n \leq 10^3\).
  • 40% số test có \(n \leq 10^5\).
  • Đảm bảo trong tất cả các test, \(0 < a_{i}, b_{i}, c_{i} \leq 10^9\).

root

Câu 4 (3.0 điểm). Mật mã kho báu

100 điểm

Gần đây nhóm bạn An đã khám phá ra một kho báu trên hòn đảo hoang. Trên cánh cửa lối vào, An có ghi một xâu nhị phân \(s\) (xâu chỉ chứa các chữ số \(0\) và \(1\)). Kí tự \(|s|\) là độ dài của xâu \(s\), tức là số kí tự của xâu \(s\). Các kí tự của xâu \(s\) được đánh chỉ số từ \(1\) đến \(|s|\).

Sau khi nghiên cứu các tài liệu và bản thảo cổ, An đã biết được mật mã để mở cửa kho báu này là một bộ \(4\) số \(l_1, r_1, l_2, r_2\) trong đó \([l_1, r_1]\) và \([l_2, r_2]\) là hai đoạn chữ số khác nhau của xâu \(s\). Hai đoạn này phải cùng độ dài và dài nhất có thể, hơn nữa tổng chữ số của hai đoạn này phải bằng nhau. Cụ thể mật mã của kho báu là \(4\) số \(l_1, r_1, l_2, r_2\) sao cho:

  • \(1 \le l_1 \le r_1 \le |s|\) và \(1 \le l_2 \le r_2 \le |s|\)
  • \([l_1, r_1]\) và \([l_2, r_2]\) là hai đoạn khác nhau của \(s\) tức là \(l_1 \neq l_2\) và \(r_1 \neq r_2\)
  • \(r_1 - l_1 = r_2 - l_2\)
  • \(S_{l_1} + S_{l_1+1} + \dots + S_{r_1} = S_{l_2} + S_{l_2+1} + \dots + S_{r_2}\)
  • \(r_2 - l_2\) lớn nhất.

Theo như An tìm hiểu được từ bản thảo nếu có nhiều bộ \(4\) thỏa mãn thì bất kì bộ nào trong chúng đều có thể làm mật mã. Bây giờ An cần mật mã cho kho báu, nhưng anh ấy không thể tìm được nếu không có sự giúp đỡ của bạn. Bạn hãy giúp An tìm mật mã của kho báu.

Input

Vào từ file PASS.INP gồm:

  • Dòng đầu tiên chứa số nguyên \(t\) (\(1 \le t \le 5\)) là số test.
  • Mỗi dòng trong \(t\) dòng tiếp theo chứa một xâu nhị phân \(s\) (xâu \(s\) chỉ bao gồm các chữ số \(0\), \(1\) và \(1 \le |s| \le 10^6\)).

Output

Ghi ra file PASS.OUT: Với mỗi test in kết quả trên một dòng: nếu không tồn tại một bộ \(4\) số như vậy thì in ra \(-1\); ngược lại in ra \(4\) số \(l_1, r_1, l_2, r_2\) là mật mã cần tìm. Nếu có nhiều câu trả lời thì in ra một câu trả lời bất kì trong số chúng.

Example

Test 1

Input
3
111111
010101
1
Output
1 5 2 6
1 4 2 5
-1
Note

Giải thích:

Trong test đầu tiên, đoạn \([1, 5]\) ứng với xâu con "11111", đoạn \([2, 6]\) ứng với xâu con "11111" là hai đoạn khác nhau có cùng độ dài và có cùng tổng các chữ số bằng \(5\). Không tồn tại đoạn hai đoạn nào có độ dài lớn hơn thỏa mãn tất cả các điều kiện.

Trong test thứ ba, không tồn tại hai đoạn nào thỏa mãn tất cả các điều kiện.

Scoring

  • Có \(25\%\) số test tương ứng với \(25\%\) số điểm thỏa mãn: tổng độ dài tất cả các xâu \(s\) không vượt quá \(50\).
  • Có \(25\%\) số test khác tương ứng với \(25\%\) số điểm thỏa mãn: tổng độ dài tất cả các xâu \(s\) không vượt quá \(500\).
  • Có \(25\%\) số test khác tương ứng với \(25\%\) số điểm thỏa mãn: tổng độ dài tất cả các xâu \(s\) không vượt quá \(10^4\).
  • Có \(25\%\) số test còn lại ứng với \(25\%\) số điểm: không có thêm ràng buộc nào.
Xem thêm