Đ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

Thẻ bài

100 điểm

Alice và Peter là đôi bạn thân có cùng đam mê sưu tầm các thẻ bài Magic: The Gathering.

Hiện tại, Alice đang sở hữu \(N\) thẻ bài với các giá trị lần lượt là
\(A_1, A_2, \dots, A_N\).
Tương tự, Peter cũng sở hữu \(N\) thẻ bài với các giá trị
\(B_1, B_2, \dots, B_N\).

Alice rất muốn biết tập hợp \(x\) thẻ bài đầu tiên của mình có giống với tập hợp \(y\) thẻ bài đầu tiên của Peter hay không.

Hai tập hợp được coi là giống nhau nếu và chỉ nếu mọi loại thẻ bài xuất hiện trong tập hợp của Alice cũng xuất hiện trong tập hợp của Peter và ngược lại.

Bạn hãy giúp Alice trả lời các truy vấn trên.

\InputFile

  • Dòng đầu chứa số nguyên dương \(N\) \((1 \le N \le 2 \cdot 10^5)\) --- số lượng thẻ bài của mỗi người.
  • 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^9)\) --- các thẻ bài của Alice.
  • Dòng thứ ba chứa \(N\) số nguyên dương \(B_1, B_2, \dots, B_N\)
    \((1 \le B_i \le 10^9)\) --- các thẻ bài của Peter.
  • Dòng tiếp theo chứa số nguyên dương \(Q\) \((1 \le Q \le 2 \cdot 10^5)\) --- số lượng truy vấn.
  • \(Q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(x, y\)
    \((1 \le x, y \le N)\).

\OutputFile

Gồm \(Q\) dòng, mỗi dòng in ra:

  • Yes nếu tập hợp \(x\) thẻ bài đầu tiên của Alice giống với tập hợp \(y\) thẻ bài đầu tiên của Peter;
  • No trong trường hợp ngược lại.

\Scoring

  • \(50\%\) số test: \(N, Q \le 200\), \(x = y\), các giá trị \(A_i\) đôi một khác nhau, các giá trị \(B_i\) đôi một khác nhau.
  • \(25\%\) số test: \(N, Q \le 2000\).
  • \(25\%\) số test còn lại: không có ràng buộc gì thêm.

Example

Test 1

Input
5
1 2 3 4 5
1 3 2 3 5
3
3 3
3 4
5 5
Output
Yes
Yes
No

root

Bài 1 : Chuẩn hóa xâu (5.0 điểm)

100 điểm

Nam đang học lập trình và muốn đặt tên các biến trong chương trình của mình một cách thống nhất. Hiện tại, các biến đang được đặt theo chuẩn PropCase, nhưng Nam muốn chuyển chúng sang chuẩn join_case để phù hợp với quy ước của dự án.

Chuẩn PropCase được định nghĩa như sau:

  • Tên biến chỉ gồm các chữ cái Latin A'..Z', a'..z' và chữ số 0'..9';
  • Ký tự đầu tiên không là chữ số;
  • Chữ cái đầu tiên của mỗi từ trong tên biến được viết hoa;
  • Ví dụ: DiemTbHk1, Lop9A10.

Chuẩn join_case được định nghĩa như sau:

  • Tên biến chỉ gồm các chữ cái Latin a'..z', chữ số 0'..9' và dấu gạch nối dưới _;
  • Không bắt đầu bằng chữ số hoặc dấu _;
  • Các từ trong tên biến được phân tách bởi đúng một dấu _;
  • Ví dụ: diem_tb_hk1, lop9_a10.

Yêu cầu:

Vào từ file CHUANHOA.INP:

Hãy chuyển một tên biến được viết theo chuẩn PropCase sang tên tương ứng theo chuẩn join_case.

\InputFile
Ghi ra file CHUANHOA.OUT:

Một dòng chứa một xâu \(S\) có độ dài \(n\) \((1 \le n \le 1000)\), là tên biến được viết theo chuẩn PropCase.

\OutputFile
In ra một xâu là tên biến sau khi được chuyển sang chuẩn join_case.

Example

Test 1

Input
DiemTbHk1
Output
diem_tb_hk1

Test 2

Input
Lop9A10
Output
lop9_a10

root

Chia đất

100 điểm

Phú hộ qua đời để lại cho 4 người con một mảnh đất hình vuông có kích thước \(n × n\), trên đó có trồng một số cây gỗ quí. Theo di chúc, mảnh đất sẽ được chia thành 4 phần, mỗi phần là một hình chữ nhật. Để tiết kiệm chi phí chia đất nên chỉ có thể thực hiện cắt mảnh đất bởi một nhát cắt theo chiều ngang và một nhát cắt theo chiều dọc. Các con của phú hộ đều thích có nhiều cây gỗ quí vì vậy họ sẽ chọn phần đất có nhiều cây gỗ quí hơn. Thứ tự nhận đất sẽ từ lớn tới nhỏ, người em út sẽ nhận phần có ít cây gỗ quí nhất.

  • Hãy chỉ cách chia đất để chênh lệch giữa số cây gỗ quí của người anh cả và của người em út là ít nhất.

Input

  • Dòng thứ nhất ghi số nguyên dương \(n (2 ≤ n ≤ 500)\)

  • Tiếp theo là \(n\) dòng, mỗi dòng ghi \(n\) số, số 0 hoặc số 1. Số 0 thể hiện vị trí không có cây gỗ quí, số 1 thể hiện vị trí có cây gỗ quí.

Output

Các số ghi trên cùng một dòng cách nhau bởi ít nhất một kí tự trắng.

Example

Test 1

Input
6
1 0 1 0 0 1
0 1 0 0 0 1
1 0 0 0 0 0
0 1 1 0 0 1
0 1 0 0 1 0
1 0 1 0 0 0
Output
1

root

Đếm số phân biệt

100 điểm

Cho một dãy gồm \(N\) số nguyên (\(1 \leq N \leq 10^5, -10^9 \leq A_i \leq 10^9\)). Hãy đếm và in ra số lượng các phần tử phân biệt (duy nhất) trong dãy.

Input

  • Dòng đầu tiên là số nguyên dương \(N\).
  • Dòng thứ hai là \(N\) số nguyên \(a_1, a_2, ..., a_n\), mỗi số cách nhau một dấu cách.

Output

Một dòng duy nhất chứa số lượng phần tử phân biệt.

Example

Test 1

Input
7
5 2 8 1 9 2 5
Output
5
Xem thêm