Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P161PROB - ROUND 1B - Hoặc thế này, hoặc thế kia |
Batman và Superman đang ngồi học Toán, hôm nay cô giáo dạy bài “Phép thao tác bit OR”. Nhưng cả 2 đều đã tinh thông phép OR từ nhỏ nên đứng lên xin phép cô ra về trước. Cô giáo nghi ngờ về tài năng của Batman và Superman nên đã nghĩ ra 1 bài toán, nếu có thể giải được bài toán này thì 2 người mới có thể ra về. Bài toán như sau:
Cho 1 dãy số gồm n phần tử a[1], a[2], a[3], … ,a[n]. Bạn được thực hiện nhiều nhất k thao tác, mỗi thao tác bạn có thể nhân 1 phần tử bất kỳ trong dãy với số tự nhiên x. Và cô giáo muốn sau khi k tháo tác được thực hiện thì giá trị của phép tính a[1] | a[2] | a[3] | … | a[n] phải đạt giá trị lớn nhất có thể ( “|” là ký hiệu toán tử bit OR). Hãy chỉ ra giá trị lớn nhất đó cho cô giáo.
Batman và Superman dù đã tinh thông phép OR nhưng vẫn chưa thành chính quả! Vậy nên bạn hãy giúp 2 người giải quyết bài toán này của cô giáo nhé!
Input
Dòng đầu tiên nhập 3 số nguyên n, k và x (1 <= n <= 200 000, 1 <= k <= 10, 2 <= x <= 8).
Dòng tiếp theo gồm n số nguyên a[1], a[2], … , a[n] (0 <= a[i] <= 10^9).
Output
In ra giá trị lớn nhất mà cô giáo cần tìm.
Example
Test 1:
Input:
3 1 2
1 1 1
Output:
3
Test 2:
Input:
4 2 3
1 2 4 8
Output:
79
Test 3:
Input:
2 1 2
12 9
Output:
30
Được gửi lên bởi: | adm |
Ngày: | 2016-02-18 |
Thời gian chạy: | 2s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |