Thi thử TS10 2024 - Ngày 1 - Trung vị

Xem PDF



Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Pypy 3, Python
Điểm: 1600 Thời gian: 1.0s Bộ nhớ: 1G Input: 24TFL1C.inp Output: 24TFL1C.out

Trung vị của một dãy số nguyên \(a_1, a_2, \dots, a_n\) được sắp xếp tăng dần là \(a_{\lfloor \frac{n+1}{2} \rfloor}\), với \(\lfloor x \rfloor\) là số nguyên lớn nhất không vượt quá \(x\). Nếu dãy \(a\) chưa được sắp xếp tăng dần, ta sắp xếp lại dãy rồi tìm trung vị.

Một dãy \(b_1, b_2, \dots, b_n\) được gọi là hoán vị của một dãy \(a_1, a_2, \dots, a_n\) khi và chỉ khi tồn tại một cách sắp xếp các phần tử của dãy sao cho thu được dãy \(b\).

Yêu cầu

Cho một hoán vị \(a_1, a_2, \dots, a_n\) của dãy \(1, 2, 3, \dots, n\). Với mỗi số nguyên \(v\) (\(1 \le v \le n\)), hãy đếm số đoạn con liên tiếp của dãy nhận \(v\) làm trung vị, hay nói cách khác, hãy đếm số lượng cặp số \((l, r)\) sao cho \(1 \le l \le r \le n\)\(v\) là trung vị của \(a_l, a_{l+1}, \dots, a_r\).

Input

  • Dữ liệu nhập vào từ file 24TFL1C.inp:
    • Dòng đầu tiên gồm một số nguyên dương \(n\) (\(1 \le n \le 5000\)).
    • Dòng tiếp theo gồm \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le n\)).
    • Dữ liệu đầu vào đảm bảo các giá trị đôi một phân biệt.

Output

  • Ghi ra file 24TFL1C.out:
    • Gồm \(n\) số nguyên trên cùng một dòng, số nguyên dương thứ \(v\) là số cặp \((l, r)\) sao cho \(a_l, a_{l+1}, \dots, a_r\) nhận \(v\) làm trung vị.

Ràng buộc bổ sung

  • \(8\%\) số điểm có \(n \le 9\).
  • \(8\%\) số điểm khác có \(n \le 60\).
  • \(12\%\) số điểm khác có \(n \le 100\).
  • \(12\%\) số điểm khác có \(n \le 300\).
  • \(16\%\) số điểm khác có \(n \le 500\).
  • \(20\%\) số điểm khác có \(n \le 2000\).
  • \(24\%\) số điểm còn lại không có giới hạn gì thêm.

Example

Test 1

Input
5
1 2 3 4 5
Output
2 4 5 3 1
Note

Ví dụ, với đoạn từ \(l=2, r=5\) ta có dãy \(2, 3, 4, 5\) có độ dài là \(4\), khi sắp xếp lại ta được \(2, 3, 4, 5\) và phần tử ở vị trí trung vị là \(3\). Do đó \(3\) là trung vị của đoạn \([2, 5]\).
Tương tự như trên, ta có bảng sau:

Trung vị Các đoạn
1 \((1, 1), (1, 2)\)
2 \((2, 2), (2, 3), (1, 3), (1, 4)\)
3 \((3, 3), (3, 4), (2, 4), (2, 5), (1, 5)\)
4 \((4, 4), (4, 5), (3, 5)\)
5 \((5, 5)\)

Test 2

Input
4
4 2 3 1
Output
1 5 2 2
Note
Trung vị Các đoạn
4 \((1, 1)\)
2 \((2, 2), (1, 2), (2, 3), (2, 4), (1, 4)\)
3 \((3, 3), (1, 3)\)
1 \((4, 4), (3, 4)\)

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: