Đ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

Câu 4 (3.0 điểm). Món quà dễ thương

100 điểm

An có một dãy số \(a_1, a_2, \dots, a_n\). An muốn chọn một số nguyên \(l\) \((1 \le l < n)\) và tách dãy thành hai phần:

  • Phần đầu là dãy tiền tố độ dài \(l\): \(a_1, a_2, \dots, a_l\);
  • Phần sau là dãy hậu tố độ dài \(n - l\): \(a_{l+1}, a_{l+2}, \dots, a_n\).

Món quà sẽ rất dễ thương nếu tích của các phần tử trong phần của Chi nguyên tố cùng nhau với tích của các phần tử trong phần của An, tức là ước chung lớn nhất của hai tích \(a_1 \times a_2 \times \dots \times a_l\) và \(a_{l+1} \times a_{l+2} \times \dots \times a_n\) bằng \(1\).

Tìm giá trị \(l\) nhỏ nhất sao cho món quà của An sẽ dễ thương.

Input

Vào từ tệp văn bản gift.inp:

  • Dòng đầu tiên chứa số nguyên \(n\) \((2 \le n \le 10^5)\) là số phần tử của dãy số;
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) \((2 \le a_i \le 10^5)\) là các phần tử của dãy số.

Nếu không tồn tại cách cắt, in ra \(-1\).

Output

Ghi ra tệp văn bản gift.out một dòng chứa số nguyên \(l\) là vị trí mà An sẽ cắt dãy.

Example

Test 1

Input
4
2 3 4 5
Output
3
Note

Trong ví dụ trên, An sẽ cắt dãy tại vị trí \(l = 3\) và tách dãy thành hai phần \(2, 3, 4\) và \(5\). Tích các phần tử của phần thứ nhất và thứ hai lần lượt là \(2 \times 3 \times 4 = 24\) và \(5\). Hơn nữa hai tích này là hai số nguyên tố cùng nhau.

Scoring

  • 25% số test: \(2 \le n \le 10\) và \(2 \le a_i \le 10\);
  • 25% số test: \(2 \le n \le 100\);
  • 25% số test: \(2 \le n \le 1000\);
  • 25% số test: Không có thêm ràng buộc nào.

root

Vị trí bị cấm

100 điểm

Cho một mảng số nguyên dương gồm \(N\) phần tử, các phần tử được đánh số liên tiếp từ \(1\) đến \(N\). Phần tử thứ \(i\) có giá trị là \(a_i\). Trong số \(N\) phần tử này, có \(M\) \((M \leq N)\) vị trí bị cấm, các vị trí này có giá trị nằm trong mảng \(b_1, b_2, ..., b_M\). Hãy in ra dãy \(a\) ra màn hình, chỉ in các vị trí không bị cấm.

Input

  • Dòng đầu tiên gồm số nguyên dương \(N\) - số lượng phần tử dãy \(a\) \((1 \leq N \leq 10^5)\).
  • Dòng thứ hai gồm \(N\) số nguyên dương \(a_1, a_2, ..., a_N\) \((1 \leq a_i \leq 10^5)\).
  • Dòng thứ ba gồm số nguyên dương \(M\) - số lượng vị trí bị cấm \((M \leq N)\).
  • Dòng thứ bốn gồm \(M\) số nguyên dương \(b_1, b_2, ..., b_M\) \((1 \leq b_i \leq N)\).

Output

  • In ra dãy \(a\) ra màn hình, chỉ in các vị trí không bị cấm.

Example

Test 1

Input
5
2 4 6 8 10
2
2 4
Output
2 6 10 

root

Bài 6. Xử lý môi trường (CLEAN)

100 điểm

Các nhà máy sản xuất các thiết bị của tập đoàn Space X thường được đặt ở những vùng đất đặc biệt. Nhà máy sản xuất các mảnh ghép được xây dựng trên một vùng diện tích có dạng hình chữ nhật \(m\times n\) bằng cách xếp chồng các khối vật liệu lên nhau, khối vật liệu là một khối lập phương đơn vị có kích thước \((1\times1\times1)\). Các khối vật liệu của nhà máy được chế tạo từ hợp kim vững chắc để chống chịu các tác động của thiên tai khắc nghiệt. Khi kết thúc hoạt động của nhà máy, tập đoàn phải phá hủy nhà máy để trả lại nguyên trạng vùng đất ban đầu. Để làm được điều đó, tập đoàn phải phá hủy các khối vật liệu ban đầu được dùng để xây dựng nhà máy; các khối vật liệu được phá hủy bằng cách bắn tia laser vào nó.

Máy bắn tia laser được lắp đặt ở bốn phía của nhà máy, và chúng được thiết lập để bắn tia laser vào một số khối vật liệu của nhà máy (tia laser luôn vuông góc với các mặt của nhà máy). Mỗi tia laser phá hủy \(r\) khối đầu tiên trên đường đi của nó. Nếu có một hoặc nhiều khối trên đỉnh của khối bị phá hủy, chúng sẽ di chuyển thẳng xuống. Sau khi bắn \(k\) tia laser, tập đoàn quyết định thực hiện một cuộc phá hủy trên diện rộng. Họ quyết định chọn khu vực có kích thước \(p\times p\) trên nhà máy sao cho số lượng khối vật liệu bị phá hủy là nhiều nhất có thể; các tia laser sẽ được bố trí phù hợp để phá hủy tất cả các khối vật liệu trong khu vực này.

Tìm số lượng khối vật liệu tối đa bị phá hủy trong khu vực có kích thước \(p\times p\) sau khi thực hiện \(k\) phát bắn.

Input

Cho trong file CLEAN.INP, có cấu trúc:

  • Dòng 1: Chứa năm số nguyên \(m,n,r,k,p\).
\[ 1 \le m\times n \le 10^6;\qquad 1 \le r \le 10;\qquad 1 \le k \le 3\times10^5;\qquad 1 \le p \le \min(m,n,10). \]
  • Trên \(m\) dòng tiếp theo: Mỗi dòng chứa \(n\) số; số \(a_{i,j}\) ở dòng thứ \(i\), cột thứ \(j\) là số khối lập phương đơn vị được xếp chồng lên nhau ở vị trí \((i,j)\) \((1 \le a_{i,j} \le 10^6)\).
  • Trên \(k\) dòng tiếp theo mô tả các phát bắn laser, có dạng dir i h:
  • dir là một trong bốn chữ cái, mô tả hướng bắn: W — hướng Tây, E — hướng Đông, S — hướng Nam, N — hướng Bắc.
  • \(i\) là một số nguyên dương. Nếu hướng bắn là hướng Đông hoặc hướng Tây thì đây là chỉ số dòng; nếu hướng bắn là hướng Nam hoặc hướng Bắc thì đây là chỉ số cột bị bắn \((1 \le i \le 10^6)\).
  • \(h\) là độ cao của phát bắn \((1 \le h \le 10^6)\).

Output

Ghi ra file CLEAN.OUT:

  • Dòng 1: Ghi một số nguyên duy nhất là kết quả bài toán.

Example

Scoring

  • 30% số test ứng với 30% số điểm có \(n\times m \le 300\).
  • 70% số test ứng với 70% số điểm không có ràng buộc gì thêm.

root

Biểu thức (Tham lam, 2*)

100 điểm

Một dãy gồm \(n\) số nguyên \(a_{1}, a_{2},..., a_{n}\) được viết thành một hàng ngang, giữa hai số liên tiếp có một khoảng trắng, như vậy có tất cả \((n-1)\) khoảng trắng. Người ta muốn đặt \(k\) dấu cộng và \((n-1-k)\) dấu trừ vào \((n-1)\) khoảng trắng đó để nhận được một biểu thức có giá trị lớn nhất.

Ví dụ, với dãy gồm \(5\) số nguyên \(28, 9, 5, 1, 69\) và \(k = 2\) thì cách đặt \(28+9-5-1+69\) là biểu thức có giá trị lớn nhất.

Yêu cầu: Cho dãy gồm \(n\) số nguyên \(a_{1}, a_{2},..., a_{n}\) và số nguyên dương \(k\), hãy tìm cách đặt \(k\) dấu cộng và \((n-1-k)\) dấu trừ vào \((n-1)\) khoảng trắng để nhận được một biểu thức có giá trị lớn nhất.

Input

Dòng đầu chứa hai số nguyên dương \(n, k (k < n)\)

Dòng thứ hai chứa n số nguyên \(a_{1}, a_{2},..., a_{n}\) \((|a_{i}| ≤ 10^6)\)

Output

Một số nguyên là giá trị của biểu thức đạt được.

Example

Test 1

Input
5 2
28 9 5 1 69
Output
100

Scoring

\(60\%\) số test có \(n \leq 20\).

\(40\%\) số test còn lại có \(n \leq 10^5\).

Xem thêm