Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P143SUMC - ROUND 3C - Tổng lớn nhất |
Tí đang có một mảng số nguyên không âm có n phần tử. Một hàm f(x) có đối số x nhận giá trị trong khoảng 0 đến 2^n -1.
Hàm f(x) được tính theo bởi công thức sau: f(x) = a[0] * bit[0] + a[1] *bit[1] + … + a[n-1] * bit[n-1].
bit[i] là giá trị bit tương ứng của số x khi biểu diễn sang hệ nhị phân.
Ví dụ: Nếu n = 4 và x = 11 (11 = 2^0 + 2^1 + 2^3) thì f(x) = a[0] + a[1] + a[3].
Tí đang tìm giá trị lớn nhất của hàm f(x) với mọi 0 <=x <= m, trong đó m là một số nguyên cho trước. Các bạn cũng làm cùng với Tí nhé!
Input
Dòng đầu tiên chứa số nguyên n (1 <=n <=10^5) số phần tử của mảng.
Dòng thứ 2 chứa n số nguyên a[0], a[1], .. , a[n-1] (0 <=a[i] <= 10^4).
Dòng thứ 3 chứa xâu S độ dài n là biểu diễn nhị phân của số m. S[i] là bit[i] của số m (0 <= i <= n-1).
Output
In ra số nguyên duy nhất là giá trị lớn nhất của hàm f(x).
Example
Test 1:
Input:
2
3 8
10
Output:
3
Test 2:
Input:
5
17 0 10 2 1
11010
Output:
27
Được gửi lên bởi: | adm |
Ngày: | 2014-07-08 |
Thời gian chạy: | 1s |
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 JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |