11827. Робот
Є \(N\) людей, кожен з яких або дитина, або дорослий. \(I\)-та особа має вагу \(W_i\).
Рядком \(S\) довжини \(N\), що складається з 0 і 1, визначається те, чи є кожна людина дитиною чи дорослим. Якщо \(i\)-й символ \(S\) дорівнює 0, то \(i\)-та особа є дитиною; якщо 1, то \(i\)-та людина доросла.
Роботу на вхід дають дійсне число \(X\). Він вважає людину з вагою менше \(X\) дитиною, а людину з вагою більше або дорівнює \(X\) — дорослою.
Для дійсного значення \(X\) нехай \(f(X)\) буде кількістю людей, яких робот правильно оцінює, чи є вони дітьми чи дорослими.
Знайдіть максимальне значення \(f(X)\) для всіх дійсних значень \(X\).
Обмеження
- \(1 \leq N \leq 2 \times 10^5\)
- \(S\) — рядок довжини \(N\), що складається з 0 і 1.
- \(1 \leq W_i \leq 10^9\)
- \(N\) і \(W_i\) є цілими числами.
Формат вхідних даних
Перший рядок містить ціле число \(N\)
Другий рядок містить \(S\)
Наступний рядок містить \(N\) цілих чисел \(W_i\)
Числа у рядках розділяються пропуском.
Формат вихідних даних
У вихідний потік виведіть шукане значення \(f(X)\)
Примітка
До прикладу 1:
Коли роботу дають X=50, це оцінює 2-го, 3-го та 4-го людей як дітей, а 1-го та 5-го як дорослих.
Реально 2-й і 4-й – діти, а 1-й, 3-й і 5-й – дорослі, тому 1-й, 2-й, 4-й і 5-й люди правильно оцінені. Отже, f(50)=4.
Це максимум, оскільки немає X, який би правильно оцінив усіх 5 осіб. Таким чином, має бути виведено 4.
Приклад вхідних даних
5
10101
60 45 30 40 80
Приклад вихідних даних
4
Приклад вхідних даних
3
000
1 2 3
Приклад вихідних даних
3
Приклад вхідних даних
5
10101
60 50 50 50 60
Приклад вихідних даних
4
Коментарі