eolymp
bolt
Try our new interface for solving problems
Məsələlər

Ассистенты

Ассистенты

Профессор Байтазар возглавляет крупный научный проект. До завершения проекта ему осталось провести \textbf{n }независимых экспериментов (пронумерованных целыми числами от \textbf{1} до \textbf{n}). Каждый эксперимент профессор может провести самостоятельно или перепоручить ассистенту. Если Байтазар решает провести \textbf{i}-й эксперимент самостоятельно, он должен затратить \textbf{p_i} подряд идущих дней на него. При этом он не может заниматься другими делами. Если Байтазар перепоручит эксперимент ассистенту, то он должен потратить один день на подбор ассистента (так как Байтазар привык всё делать основательно, то в этот день он не может отвлекаться на другие дела). Найденный ассистент начинает работу на следующий день и проведёт эксперимент в течение \textbf{a_i} подряд идущих дней. При этом профессор может заниматься какими-то другими делами. Считается, что Байтазар всегда может подобрать квалифицированного ассистента, который ещё не задействован в проекте. Профессор попросил Вас составить расписание его действий так, чтобы завершить проект как можно раньше. \InputFile Первая строка ввода содержит целое число \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{500000}) - количество экспериментов, оставшихся Байтазару до завершения проекта. Далее следует \textbf{n} строк, \textbf{i}-я из них содержит два целых числа \textbf{p_i} и \textbf{a_i} (\textbf{1} ≤ \textbf{p_i} ≤ \textbf{a_i} ≤ \textbf{10^9}), обозначающие количество дней, которые требуются для \textbf{i}-го эксперимента профессору и ассистенту соответственно. \OutputFile В первой строке выведите одно целое число \textbf{k} - минимальное количество дней, которое потребуется для завершения проекта. В последующих \textbf{n} строках выведите расписание экспериментов, позволяющее завершить проект за \textbf{k} дней. Далее должны следовать \textbf{n} строк, \textbf{i}-я из них должна содержать график \textbf{i}-го эксперимента: сначала идёт буква "\textbf{B}" в случае, если профессор проводит \textbf{i}-й эксперимент самостоятельно, или "\textbf{A}" в случае, если он перепоручает эксперимент ассистенту, а затем через пробел идёт число \textbf{t_i} (\textbf{1} ≤ \textbf{t_i} ≤ \textbf{k}) - день, в который профессор начнёт работу над экспериментом (тогда эксперимент завершится в день \textbf{t_i+p_i-1}), или в который он будет искать нужного ассистента (который будет работать с \textbf{(t_i+1)}-го дня по \textbf{(t_i+a_i)}-й). В случае, если оптимальных расписаний несколько, выведите любое.
Zaman məhdudiyyəti 10 saniyə
Yaddaşı istafadə məhdudiyyəti 512 MiB
Giriş verilənləri #1
5
2 6
2 6
2 5
2 2
1 2
Çıxış verilənləri #1
7
A 1
B 5
A 2
A 3
A 4
Mənbə Yandex.Algorithm, Online Round 1, July 14, 2013