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

Dễ

Di chuyển thùng hàng

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

root

Trên một khoảng sân rộng có chiều dài \(L\), người ta đặt một số thùng hàng. Dưới đây là một hình ảnh về sân có chiều dài \(10\), có chứa \(5\) thùng hàng \(A, B, C, D, E\).

\begincenter

\endcenter

Hoàng muốn di chuyển các thùng hàng để tạo ra một khoảng sân có độ rộng tối thiểu là \(W\) để có thể chơi bóng cùng các bạn của mình. Mỗi bước, Hoàng có thể di chuyển một thùng hàng sang trái hoặc sang phải nếu vị trí vẫn nằm trong sân và vị trí đó còn trống.

Với ví dụ trên, khi Hoàng cần một khoảng sân độ rộng tối thiểu là \(3\), thì dưới đây là một cách di chuyển các thùng hàng. Cách di chuyển này cần \(2\) bước di chuyển.

\begincenter

\endcenter

Nếu Hoàng cần một khoảng sân độ rộng tối thiểu là \(4\), thì dưới đây là một cách di chuyển các thùng hàng. Cách di chuyển này cần \(4\) bước di chuyển.

\begincenter

\endcenter

Nếu Hoàng cần một khoảng sân độ rộng tối thiểu là \(5\), thì dưới đây là một cách di chuyển các thùng hàng. Cách di chuyển này cần \(7\) bước di chuyển.

\begincenter

\endcenter

Yêu cầu: Cho vị trí ban đầu của các thùng hàng và giá trị \(W\), bạn hãy giúp Hoàng tính số bước di chuyển ít nhất.

Input

  • Dòng đầu tiên ghi số \(T\) là số bộ dữ liệu \((T \leq 10)\)

  • \(T\) dòng tiếp theo, mỗi dòng mô tả một bộ dữ liệu. Mỗi dòng chứa một xâu kí tự \(s\) mô tả sân có độ dài không quá \(5 \times 10^5\) và số nguyên dương \(W\) cách nhau bởi dấu cách. Xâu kí tự \(s\) chỉ gồm dấu chấm hoặc kí tự X, trong đó kí tự chấm thể hiên vị trí sân không có thùng hàng và kí tự X thể hiện vị trí sân có thùng hàng.

Output

  • In ra \(T\) dòng, mỗi dòng chứa một số nguyên là ra số lần di chuyển các thùng hàng ít nhất.

Example

Test 1

Input
4
.XX..XX.X. 2
.XX..XX.X. 3
.XX..XX.X. 4
.XX..XX.X. 5
Output
0
2
4
7

Scoring

  • Subtask #1 (\(10\%\) số điểm): Độ dài xâu \(s\) không vượt quá \(50\) và có không quá \(3\) thùng hàng

  • Subtask #2 (\(10\%\) số điểm): Độ dài xâu \(s\) không vượt quá \(20\)

  • Subtask #3 (\(10\%\) số điểm): Độ dài xâu \(s\) không vượt quá \(50\)

  • Subtask #4 (\(10\%\) số điểm): Độ dài xâu \(s\) không vượt quá \(200\)

  • Subtask #5 (\(25\%\) số điểm): Độ dài xâu \(s\) không vượt quá \(5000\)

  • Subtask #6 (\(20\%\) số điểm): Độ dài xâu \(s\) không vượt quá \(50000\)

  • Subtask #7 (\(15\%\) số điểm): Không có ràng buộc gì thêm

Dễ

Phần tử thiếu

100 điểm 42% AC 5 đã giải

root

Alice sưu tầm và lưu lại một danh sách các số nguyên dương mà mình yêu thích, gọi là các số nguyên dương đẹp.

Hiện tại, Alice đang có một danh sách \(A\) gồm \(N\) số nguyên dương đẹp
\(A_1, A_2, \dots, A_N\),
trong đó các phần tử đôi một khác nhau và được sắp xếp theo thứ tự tăng dần
\(A_1 < A_2 < \dots < A_N\).

Các số nguyên dương không xuất hiện trong danh sách \(A\) được gọi là các phần tử thiếu.

Alice cần trả lời \(Q\) truy vấn độc lập.
Mỗi truy vấn cho một số nguyên dương \(k\), yêu cầu xác định phần tử thiếu thứ \(k\) khi liệt kê các phần tử thiếu theo thứ tự tăng dần.

\InputFile

  • Dòng đầu chứa hai số nguyên dương \(N\) và \(Q\)
    \((1 \le N, Q \le 10^5)\).
  • Dòng thứ hai chứa \(N\) số nguyên dương
    \(A_1, A_2, \dots, A_N\)
    \((1 \le A_i \le 10^{18})\), dữ liệu đảm bảo dãy được sắp xếp tăng nghiêm ngặt.
  • \(Q\) dòng tiếp theo, mỗi dòng chứa một số nguyên dương \(k_i\)
    \((1 \le k_i \le 10^{18})\).

\OutputFile

Gồm \(Q\) dòng, dòng thứ \(i\) in ra một số nguyên --- giá trị của phần tử thiếu thứ \(k_i\).

\Scoring

  • \(40\%\) số test: \(N, Q \le 2 \cdot 10^3\).
  • \(30\%\) số test: \(A_i \le 10^6\).
  • \(30\%\) số test còn lại: không có ràng buộc gì thêm.

Example

Test 1

Input
5 3
1 3 9 12 17
2
9
19
Output
4
13
24
Dễ

Dãy số và trung vị

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

root

Cho một dãy số nguyên \(A\) gồm \(n\) phần tử.

Với mỗi đoạn con \(A[l..r]\) (\(1 \le l \le r \le n\)), ta định nghĩa:

  • \(W(l,r,x)\) là số lần giá trị \(x\) xuất hiện trong đoạn \(A[l],A[l+1],\dots,A[r]\).
  • Gọi \(B\) là dãy gồm các phần tử đoạn \(A[l..r]\), và sắp xếp \(B\) tăng dần được dãy \(C\).

    Tập trung vị của đoạn là:
    $
    S(l,r) = { C[\lfloor (k-1)/2 \rfloor],\; C[\lceil (k-1)/2 \rceil] },
    $
    trong đó \(k = r-l+1\).

Giá trị của đoạn \((l,r)\) được định nghĩa là:
$
\max_{x \in S(l,r)} W(l,r,x).
$

Lưu ý: tập \(S(l,r)\) sẽ chứa phần tử trung vị duy nhất nếu đoạn có số phần tử lẻ, và chứa hai phần tử trung vị nếu đoạn có số phần tử chẵn.

Yêu cầu: Tìm giá trị lớn nhất trong tất cả các đoạn \((l,r)\).

\InputFile

  • Dòng đầu chứa số nguyên \(n\) (\(1 \le n \le 5 \times 10^5\)).
  • Dòng tiếp theo chứa \(n\) số nguyên \(A_i\) (\(1 \le A_i \le n\)).

\OutputFile

In ra một số nguyên duy nhất --- giá trị lớn nhất có thể đạt được.

\Scoring

  • \(11\) điểm: \(n \le 100\).
  • \(17\) điểm: \(n \le 2 \times 10^3\).
  • \(7\) điểm: tồn tại \(x\) sao cho dãy tăng đến \(x\) rồi giảm sau đó.
  • \(12\) điểm: \(A_i \le 3\).
  • \(13\) điểm: mỗi giá trị xuất hiện nhiều nhất 2 lần.
  • \(22\) điểm: \(n \le 8 \times 10^4\).
  • \(18\) điểm: không có ràng buộc thêm.

Example

Test 1

Input
7
1 2 3 1 2 1 3
Output
3

Test 2

Input
9
1 1 2 3 4 3 2 1 1
Output
2
Dễ

Số lẻ

100 điểm 80% AC 15 đã giải

root

Nhập vào hai số nguyên \(a\) và \(b\) \((a \leq b)\). In ra màn hình số lượng số lẻ nằm trong đoạn \([a, b]\).

Ví dụ, nếu nhập \(a = 2, b = 10\), thì sẽ có \(4\) số lẻ là \(3, 5, 7, 9\).

Example

Test 1

Input
2 10
Output
4
Xem thêm