Купання Містера 01011#3265

Купання Містера 01011

1 секунда
64 мегабайти
Легка

В один прохолодний вечір Містер 01011 захотів покупатися у своєму резервуарі з рідиною густини . Але рідина виявилася надзвичайно холодною, тому купатися було неможливо. Тоді, щоб провести якомога більше часу у своєму чарівному резервуарі, що складається з відділень різної густини, Містер 01011 вирішив провести кілька експериментів із плаваючими тілами. Температура рідин у резервуарі не впливає на ці тіла. Кожне тіло — це звичайний куб із заданою густиною та довжиною ребра, обладнаний пристроєм, який дозволяє миттєво змінювати його об'єм. При зануренні тіла у резервуар частина тіла опиниться зануреною. Потрібно визначити об'єм зануреної частини тіла.

Кожен експеримент складається з таких дій:

Всі процеси відбуваються при сталих температурі та тиску.

Вхідні дані

У першому рядку ціле число (N \leq 10^5) — кількість резервуарів. У наступних рядках задано густину рідини у кожному резервуарі \rho_i у кг/м³ (1 \leq \rho_i \leq 20000, дійсне число). У наступному рядку задано число (Q \leq 10^5) — кількість експериментів. Кожен із наступних рядків містить одну з таких команд:

  • INS X Y Z — де — номер резервуара (ціле число), — густина тіла (1 \leq Y \leq 20000, дійсне число, кг/м³), — довжина ребра куба (1 \leq Z \leq 1000, дійсне число, в метрах).

  • DEL X — де (ціле число) — порядковий номер куба, який треба видалити. Якщо цей куб ще не був у резервуарі, команду ігнорувати.

  • INC X Y — де (ціле число) — порядковий номер куба, до якого додається об'єм; (1 \leq Y \leq 10^9, дійсне число, м³) — величина збільшення об'єму. Якщо куба не було розміщено або вже видалено — ігнорувати.

  • DEC X Y — де (ціле число) — порядковий номер куба, який зменшується в об'ємі; (1 \leq Y \leq 10^9, дійсне число, м³) — величина зменшення об'єму. Якщо куба не було розміщено або вже видалено — ігнорувати. Якщо об'єм куба менше , вважати, що куб у резервуарі має нульову масу й об'єм.

  • CALC L R — де , (1 \leq L, R \leq N) — цілі числа. Обчислити сумарний об'єм занурених частин тіл у резервуарах з номерами від до (включно).

Кожен резервуар достатньо великий, щоб рідина не переливалася при зануренні тіл. Тіла отримують порядкові номери, починаючи з , в порядку появи у запитах INS.

Вихідні дані

Після кожного запиту виводьте у новому рядку результат для запиту CALC 1 N. Крім того, після кожного запиту типу CALC додатково виведіть у новому рядку результат цього запиту. Тобто, якщо надійшов запит CALC L R, спочатку виведіть відповідь на CALC 1 N, а потім наступним рядком відповідь на CALC L R.

Відповіді виводьте з точністю не менше знаків після коми.

Пояснення до прикладу: Маємо резервуарів з густиною . Також є запитів.

  1. INS 1 800 2 — виконуємо цей запит і виводимо результат CALC 1 5

  2. INC 1 4 — виконуємо цей запит і виводимо результат CALC 1 5

  3. DEL 2 — виконуємо цей запит і виводимо результат CALC 1 5

  4. INS 3 1200 5 — виконуємо цей запит і виводимо результат CALC 1 5

  5. INS 4 300 10 — виконуємо цей запит і виводимо результат CALC 1 5

  6. DEC 2 25 — виконуємо цей запит і виводимо результат CALC 1 5

  7. CALC 1 3 — виводимо результат CALC 1 5, потім результат цього запиту

  8. INC 3 500 — виконуємо цей запит і виводимо результат CALC 1 5

  9. CALC 3 4 — виводимо результат CALC 1 5, потім результат цього запиту

  10. DEL 1 — виконуємо цей запит і виводимо результат CALC 1 5

Приклади

Приклад 1

Loading
Loading