Табун коней#7769

Табун коней

1 секунда
128 мегабайтів
Дуже легка

Мансур захоплюється розведенням коней, як і його предки. Зараз у нього найбільше стадо у Казахстані, але так було не завжди. років тому Мансур був простим джигітом і мав лише одного коня. Він мріяв заробити багато грошей і стати баєм.

Пронумеруємо роки від до n - 1 у хронологічному порядку (тобто найсвіжіший рік має номер n - 1). Щороку погода впливала на темпи приросту стада. Для кожного -го року Мансур пам'ятає додатне ціле число x_i — коефіцієнт приросту. Якщо на початку року у нього було коней, то наприкінці цього року стадо збільшувалось до h \cdot x_i коней.

Коней можна було продавати лише наприкінці року. Для кожного -го року Мансур пам'ятає додатне ціле число y_i — ціну одного коня наприкінці цього року. Наприкінці кожного -го року можна було продати будь-яку кількість коней за ціною y_i за коня.

Мансур хоче дізнатись, яку максимальну суму грошей він міг би заробити, продаючи коней у найвигідніші моменти за років. Вас було запрошено в гості на той (святкове зібрання), і він просить вас відповісти на це питання.

Іноді Мансур згадує подробиці, які формують послідовність із уточнень. Кожне уточнення стосується одного з елементів x_i або y_i. Після кожного уточнення він знову просить порахувати, яку максимальну суму грошей він міг би заробити, продаючи коней. Уточнення застосовуються послідовно, тому для кожної відповіді необхідно враховувати всі попередні уточнення. Зверніть увагу: кожне значення x_i або y_i може оновлюватися більше одного разу.

Відповіді Мансура можуть бути дуже великими числами. Щоб уникнути операцій з величезними числами, необхідно виводити відповідь по модулю 10^9 + 7.

Вхідні дані

У першому рядку вказано число минулих років (1 \le n \le 500000). У другому рядку задано коефіцієнти приросту x_0, x_1, \ldots, x_{n-1} наприкінці -го року (0 \le i \le n - 1), у третьому — ціни y_0, y_1, \ldots, y_{n-1} за одного коня наприкінці -го року (0 \le i \le n - 1). Далі у наступному рядку подано кількість уточнень (1 \le m \le 10^5). Кожен із наступних рядків містить три числа type pos val (type для UpdateX, type для UpdateY, 0 \le pos \le n - 1). І початкові, і нові значення масивів X та Y лежать у межах від до 10^9 включно.

Вихідні дані

Виведіть максимальну суму грошей (по модулю 10^9 + 7), яку Мансур міг би заробити для початкових значень X і Y у першому рядку. Далі після кожного уточнення виводьте максимальну суму грошей (по модулю 10^9 + 7), яку Мансур міг би заробити після застосування цього уточнення.

Приклади

Припустимо, минуло три роки (n = 3) й відомо таке:

prb7769.gif

За цих початкових значень Мансур заробить максимум, якщо продасть усіх коней наприкінці -го року. Його послідовність дій буде такою:

  • Спочатку у Мансура є один кінь.

  • Наприкінці -го року у нього буде два коні (1 \cdot X_0 = 2).

  • Наприкінці -го року у нього все ще буде два коні (2 \cdot X_1 = 2). Тепер він може їх продати і отримати прибуток (2 \cdot Y_1 = 8).

Після цього було одне уточнення (m = 1), і значення y_1 стало . Після уточнення ситуація така:

prb7769_1.gif

У цьому випадку один із оптимальних варіантів — продати одного коня наприкінці -го року, а трьох коней — наприкінці -го року. Послідовність дій:

  • Спочатку у Мансура є один кінь.

  • Наприкінці -го року у нього буде два коні (1 \cdot X_0 = 2). Тепер можна продати одного, заробивши (1 \cdot Y_0 = 3). У нього залишиться один кінь.

  • Наприкінці -го року у нього буде один кінь (1 \cdot X_1 = 1).

  • Наприкінці -го року у нього буде три коні (1 \cdot X_2 = 3). Тепер він може їх продати й отримати (3 \cdot Y_2 = 3). Отже, максимальний сумарний прибуток — (3 + 3 = 6).

Приклад 1

Loading
Loading