Входные данные: стандартный ввод Выходные данные: стандартный вывод Ограничения на память: 5 MB Время на тест: 1 секунда Тесты к задаче:Скачать Описание решения:Посмотреть
ЗАДАЧА
Предположим, что в регионе Тампере базовые станции обеспечения мобильной телефонной связи четвертого поколения действуют следующим образом. Регион поделен на квадраты. Квадраты образуют матрицу размера SxS, строки и столбцы которой пронумерованы от 0 до S-1. В каждом квадрате находится базовая станция. Количество работающих мобильных телефонов внутри квадрата может меняться, так как телефоны могут перемещаться из одного квадрата в другой, и телефоны могут включаться или выключаться. В некоторые моменты времени каждая базовая станция передает головной базовой станции отчет об изменении количества работающих телефонов и свои координаты (номер строки и номер столбца соответственно).
Напишите программу, которая получает эти отчеты и отвечает на запросы о текущем общем количестве работающих мобильных телефонов в некоторой прямоугольной области.
ВВОД И ВЫВОД
Целочисленные данные вводятся из стандартного входного потока. Входные данные кодируются следующим образом. Каждая строка содержит одну команду. Команда состоит из кода и набора параметров (целых чисел) в соответствии со следующей таблицей.
Команда
Параметры
Значение
0
S
Инициализирует матрицу размера SxS нулями. Эта команда выдается только один раз и должна быть первой командой.
1
X Y A
Прибавляет к количеству работающих мобильных телефонов в квадрате (X, Y) число A. Число A может быть как положительным, так и отрицательным.
2
L B R T
Запрашивает текущее суммарное количество работающих мобильных телефонов в квадратах (X,Y), где L ≤ X ≤ R, B ≤ Y ≤ T
3
Завершает программу. Эта команда выдается только один раз и должна быть последней.
Программа отвечает на каждый запрос (команду с кодом 2), записывая целые числа в стандартный выходной поток.
Значения всегда будут в допустимых пределах, так что нет необходимости их проверять. В частности, добавление отрицательного числа A не приведет к уменьшению количества телефонов в квадрате до значения, меньшего нуля. Индексы в матрице начинаются от 0, например, для матрицы 4x4, мы имеем 0 ≤ X ≤ 3 и 0 ≤ Y ≤ 3.
Ваша программа не должна ничего выдавать в ответ на команды, отличные от команд с кодом 2. Если поступила команда 2, то ваша программа должна ответить на запрос, выдав в стандартный выходной поток строку, содержащую единственное целое число.
ИНСТРУКЦИИ ДЛЯ ПРОГРАММИРОВАНИЯ
Далее в примерах целочисленная переменная last предполагается последней, считанной из строки, а целочисленная переменная answer содержит ваш ответ.
Если вы пишите программу на C++ и используете iostreams, то вам следует использовать следующие инструкции для чтения из стандартного входного потока и записи в стандартный выходной поток:
cin>>last;
cout<<answer<<endl<<flush;
Если вы пишите программу на C или С++ и используете scanf и printf, то вам следует использовать следующие инструкции для чтения из стандартного входного потока и записи в стандартный выходной поток:
Если вы пишите программу на Pascal, то вам следует использовать следующие инструкции для чтения из стандартного входного потока и записи в стандартный выходной поток:
Read(last); ... Readln;
Writeln(answer);
ПРИМЕР
stdin
stdout
пояснение
0 4
Инициализируется матрица размером 4x4.
1 1 2 3
Значение в квадрате (1, 2) увеличивается на 3.
2 0 0 2 2
Запрашивается текущая сумма значений из
прямоугольника 0 ≤ X ≤ 2, 0 ≤ Y ≤ 2.
3
Ответ на запрос.
1 1 1 2
Значение в квадрате (1, 1) увеличивается на 2.
1 1 2 -1
Значение в квадрате (1, 2) уменьшается на 1.
2 1 1 2 3
Запрашивается текущая сумма значений из
прямоугольника 1 ≤ X ≤ 2, 1 ≤ Y ≤ 3.
4
Ответ на запрос.
3
Программа завершается.
ОГРАНИЧЕНИЯ
Размер матрицы SxS 1x1 ≤ SxS ≤ 1024x1024
В любом квадрате матрицы в каждый момент времени может находиться V работающих телефонов
V
0 ≤ V ≤ 215 –1 (= 32767)
Изменение количества телефонов в квадрате матрицы
A
-215 ≤ A ≤ 215–1 (= 32767)
Количество команд во входном потоке
U
3 ≤ U ≤ 60002
Максимальное суммарное количество телефонов во всей матрице
M
M= 230
В 16-ти из 20-ти тестов размер матрицы будет не более 512x512.
Замечание: При тестировании вашей программы через web указанный вами входной файл подается в стандартный входной поток вашей программы.
создание мобильных игр . ибп ups ippon