#CCBCHBAHAI0000118. Array Mastery II - Source & Semantics Clinic

Array Mastery II - Source & Semantics Clinic

Array Mastery II - Source & Semantics Clinic

Nguồn: Phước Hưng OJ

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho mảng số nguyên

A=(a0,a1,…,an−1)A=(a_0,a_1,\ldots,a_{n-1})

và hai số nguyên x,yx,y. Bài kiểm tra tổng hợp yêu cầu thực hiện đúng tám phản xạ của Chương 32 trên cùng dữ liệu:

  1. Kích thước suy ra từ danh sách nn phần tử là N=nN=n; chỉ số hợp lệ lớn nhất là n−1n-1.
  2. Tạo bản sao độc lập BB với bi=aib_i=a_i.
  3. Với parameter hàm dạng int a[], không thể suy portable độ dài mảng gốc bằng sizeof(a)/sizeof(a[0]); kết quả quy ước là UNKNOWN.
  4. Tìm chỉ số 0-based đầu tiên và cuối cùng của xx. Nếu xx không xuất hiện, cả hai chỉ số bằng −1-1.
  5. Tính tần suất
fx=∣{i∣0≤i<n, ai=x}∣.f_x=\left|\{i\mid 0\le i<n,\ a_i=x\}\right|.
  1. Tạo mảng đảo RR theo
ri=an−1−i.r_i=a_{n-1-i}.
  1. Tạo mảng CC bằng cách thay mọi xx bằng yy. Số phép thay bằng đúng fxf_x; nếu x=yx=y, C=AC=A nhưng số phép kích hoạt vẫn là fxf_x.
  2. Trên CC, chỉ được tăng phần tử từng đơn vị. Tìm số bước nhỏ nhất để biến CC thành dãy không giảm.

Bài này không sử dụng sorting, prefix sum, two pointers, chuỗi C hay mảng hai chiều.

Input

Dòng đầu chứa nn. Dòng thứ hai chứa nn số nguyên a0,…,an−1a_0,\ldots,a_{n-1}. Dòng cuối chứa x,yx,y.

Output

In lần lượt 9 dòng:

  1. n n-1;
  2. mảng BB;
  3. UNKNOWN;
  4. first last;
  5. fxf_x;
  6. mảng đảo RR;
  7. số phép thay fxf_x;
  8. mảng CC;
  9. số bước tăng nhỏ nhất để CC không giảm.

Subtask

Subtask 1 (20 điểm): 1≤n≤101\le n\le10, ∣ai∣,∣x∣,∣y∣≤100|a_i|,|x|,|y|\le100.

Subtask 2 (30 điểm): 1≤n≤10001\le n\le1000, ∣ai∣,∣x∣,∣y∣≤106|a_i|,|x|,|y|\le10^6.

Subtask 3 (50 điểm): 1≤n≤1051\le n\le10^5, ∣ai∣,∣x∣,∣y∣≤109|a_i|,|x|,|y|\le10^9.

Ví dụ

Input

5
3 1 3 2 3
3 4

Output

5 4
3 1 3 2 3
UNKNOWN
0 4
3
3 2 3 1 3
3
4 1 4 2 4
5

Giải thích

Sau thay thế, C=(4,1,4,2,4)C=(4,1,4,2,4). Để không giảm cần tăng phần tử thứ hai thêm 3 và phần tử thứ tư thêm 2, tổng 5 bước.