Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
0.069s
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ảng ~A~ có ~n~ phần tử.
- Tìm cách chia mảng thành ~k~ dãy con liên tiếp sao cho sức mạnh của từng dãy con liên tiếp ~\text{and}~ với nhau là lớn nhất.
- Sức mạnh của một dãy con được tính bằng ~\text{or}~ của các phần tử trong dãy con đó.
- Click vào đây để xem cách hoạt động của phép xử lí bit.
Input
- Dòng đầu ghi ~2~ số nguyên dương ~n~ và ~k (1 \le k \le n \le 2 × 10^5)~;
- Dòng thứ hai ghi ~n~ số nguyên dương ~A_i (i \le n)~.
Output
- In ra giá trị lớn nhất trong cách chia tối ưu.
Sample
Input #1
4 2
2 3 4 1
Output #1
2
Hint
Giải thích #1: Chia dãy thành ~(2)(3, 4, 1)~, kết quả sẽ là ~2~ ~\text{and}~ ~(3~ ~\text{or}~ ~4~ ~\text{or}~ ~1) = 2.~
Bình luận
hello ae