PTIT036 - Lũy thừa cơ số 2

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Cho một mảng ~a~ gồm ~n~ số nguyên dương được sắp xếp không giảm, và một mảng ~b~ gồm ~m~ số nguyên dương (có thể không được sắp xếp).

Cho biết ~f(i)~ (~1 \le i \le m~) là vị trí tương ứng của phần tử ~b_i~ trên mảng ~a~ (số thứ tự trên các mảng đều đếm từ ~1~, nếu ~b_i~ không xuất hiện ở ~a~ thì ~f(i) = -1~, nếu ~b_i~ xuất hiện nhiều lần trên ~a~ thì lấy số thứ tự nhỏ nhất).

Đặt ~X = \sum_{i=1}^{m} f(i) \mod 30~, yêu cầu của chúng ta là tính ~\lfloor 2^X \rfloor~.

Input

  • Dòng đầu tiên gồm số nguyên dương ~n~ là kích thước mảng ~a~ (~1 \le n \le 10^5~).
  • Dòng thứ hai gồm ~n~ số nguyên dương ~a_1, a_2, \ldots, a_n~ (~0 \le a_1 \le a_2 \le \ldots \le a_n \le 10^9~).
  • Dòng thứ ba gồm số nguyên dương ~m~ là kích thước mảng ~b~ (~1 \le m \le 10^5~).
  • Dòng thứ tư gồm ~m~ số nguyên dương ~b_1, b_2, \ldots, b_m~ (~0 \le b_i \le 10^9~).

Output

In ra một số nguyên duy nhất là kết quả tìm được.

Sample

Input #1
6
1 5 6 7 9 44
2
5 6
Output #1
32
Input #2
7
1 2 55 487 489 665 687
3
687 666 489
Output #2
2048

Hint

  • Giải thích test 1: ~5~ là ở vị trí số ~2~ nên ~f(1) = 2~, ~6~ là vị trí số ~3~ nên ~f(2) = 3~. -> kết quả là ~2^{2+3} = 32~.
  • Giải thích test 2: ~687~ ở vị trí ~7~ nên ~f(1) = 7~, ~666~ không có nên ~f(2) = -1~, ~489~ ở vị trí ~5~ nên ~f(3) = 5~. -> kết quả là ~2^{7-1+5} = 2048~.

Problem source: CLB Lập Trình PTIT


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    dinhvantung0611  đã bình luận lúc 11, Tháng 1, 2024, 11:20

    Chú ý trường hợp: 0 < 2^(X) < 1 (X < 0): in ra 0 luôn

    Và chú ý ra điều kiện đoạn tìm địa chỉ nhỏ nhất của phần tử (binary_search):

    i = A[mid]

    while (A[i] == A[mid] && i >= 0)

    i -= 1;

    return i + 2 (do địa chỉ của mảng bắt đầu từ 1)