На палубі пірати#752

На палубі пірати

1 секунда
122,174 мегабайта
Дуже легка

У давнину Піратська земля була поділена на дві команди: Буканіри та пірати Барбарії. Кількість піратів у кожній команді змінювалась, адже супротивники іноді нападали та перетворювали захоплених піратів на членів своєї команди. Одного дня з'явився чарівник і почав переміщати піратів між командами за допомогою магічних заклинань. Цей процес називався мутацією.

Є піратів, кожен має унікальний ідентифікаційний номер від до n-1. Великий маг міг мутувати групу піратів із послідовними у іншу команду.

Наприклад, якщо Піратська земля має піратів, і всі вони пірати Барбарії, чарівник міг накласти закляття і перетворити піратів із від до на Буканірів. Тоді всього стало би Буканірів і піратів Барбарії.

Маг швидко накладав закляття. Одного дня Бог втомився від змін. Бог, прихильний до Буканірів, запитав: "Скажи-но, скільки з піратів від індексу до є Буканірами?" Маг розгубився, адже в закляттях він був вправний, а от з підрахунками вже ні :-).

Тоді він захопив розумну людину з планети Земля — і цією людиною є ти! Тепер тобі потрібно відповідати на Божі питання.

Вхідні дані

Перший рядок містить кількість тестів .

Кожен тест має таку структуру:

Перша частина вхідних даних описує Піратську землю. Піратів може бути до (1 \leq n \leq 1024000). Кожен пірат належить або до Буканірів, або до піратів Барбарії. Буканіри позначаються 1 (ОДИН), а пірати Барбарії — 0 (НУЛЬ). Необхідно побудувати рядок опису піратів так:

Кожен тест починається з числа (m \leq 100), далі йдуть пар рядків. Кожна пара складається з:

  • Перший рядок: ціле число (t \leq 200)

  • Другий рядок: непорожній рядок Pirates (складається з 0 для піратів Барбарії, 1 для Буканірів, довжина не перевищує )

Рядок Pirates потрібно повторити разів і об'єднати у новий рядок. Зробити це для всіх пар, потім з'єднати отримані рядки для формування фінального опису піратів. Остаточний рядок описує піратів за індексами від до n-1.

Далі йдуть запити. Перший рядок цієї частини містить кількість запитів .

Далі йдуть (1 \leq q \leq 1000) рядків. Кожен із них описує запит у такому форматі:

  • F a b: змінити піратів із індексів по (включно) на Буканірів.

  • E a b: змінити піратів із індексів по (включно) на піратів Барбарії.

  • I a b: інвертувати піратів із індексів по (включно).

  • S a b: Боже питання: "Скільки Буканірів серед піратів від до (включно)?"

Де a \leq b, 0 \leq a < n, 0 \leq b < n.

Вихідні дані

Для кожного тесту виводьте його номер. Для кожного Божого питання виводьте його номер, двокрапку (:), пробіл і відповідь.

Приклади

Приклад 1

Loading
Loading