Dãy nhị phân (DHBB23 - CTP, HP)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1600 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho hai dãy nhị phân độ dài \(n\)\(m\). NSK thực hiện thay thế bit 0 bằng một số nguyên dương chẵn và bit 1 bằng một số nguyên dương lẻ. Sau khi thay thế, hai dãy nhị phân trở thành hai dãy tăng và mỗi số nguyên dương NSK sử dụng để thay thế chỉ được sử dụng tối đa một lần. Với mỗi cách thay thế, NSK biết được số nguyên dương lớn nhất mình sử dụng là số nào.

Yêu cầu: Đưa ra số nguyên dương lớn nhất mà nhỏ nhất có thể được sử dụng.

Input

  • Dòng 1: gồm \(n + 1\) số nguyên, số nguyên đầu tiên là \(n\ (0 ≤ n ≤ 5000)\), \(n\) số nguyên tiếp theo là các bit của dãy nhị phân đầu tiên;
  • Dòng 2: gồm \(m + 1\) số nguyên, số nguyên đầu tiên là \(m\ (1 ≤ n ≤ 5000)\), \(m\) số nguyên tiếp theo là các bit của dãy nhị phân thứ hai

Output

  • Ghi ra một số nguyên dương duy nhất là số nguyên dương lớn nhất mà nhỏ nhất được sử dụng.

Scoring

  • 15% số test tương ứng với 15% số điểm có \(n = 0\);
  • 20% số test tương ứng với 20% số điểm với dãy nhị phân đầu tiên chỉ gồm bit 0;
  • 15% số test tương ứng với 15% số điểm có \(n, m ≤ 500\);
  • 20% số test tương ứng với 20% số điểm không có ràng buộc gì thêm.

Example

Test 1

Input
4 0 1 0 1
4 1 0 0 1           
Output
9
Note

Một cách thay thế có thể cho hai dãy bit là: (2, 3, 4, 5) và (1, 6, 8, 9)

Bình luận (1)

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