Темы
    Информатика(2656 задач)
---> 180 задач <---
    1999(7 задач)
    2000(8 задач)
    2001(8 задач)
    2002(9 задач)
    2003(9 задач)
    2004(10 задач)
    2005(10 задач)
    2006(10 задач)
    2007(11 задач)
    2008(10 задач)
    2009(11 задач)
    2010(11 задач)
    2011(11 задач)
    2012(11 задач)
    2013(11 задач)
    2014(11 задач)
    2015(11 задач)
    2016(11 задач)
Страница: << 5 6 7 8 9 10 11 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes
Вершины графа находятся в точках пересечения линий сетки, а горизонтальные или вертикальные ребра единичной длины существуют только между ближайшими вершинами. Необходимо пройти по каждому ребру как минимум один раз совершив как можно меньше переходов.

Недавно Билл устроился на работу полицейским. Теперь ему предстоит каждый вечер обходить свой участок, который представляет собой прямоугольник, состоящий из N×M кварталов. Каждый квартал имеет вид квадрата размером 100×100 метров, кварталы отделены друг от друга прямыми улицами.

Таким образом, через участок Билла проходит \(N\) + 1 улица, идущая с запада на восток и \(M\) + 1 улица, идущая с севера на юг. Перекрестки разбивают улицы на (\(N\) + 1)\(M\) + (\(M\) + 1)\(N\) отрезков, каждый из которых имеет длину 100 метров.

Совершая обход, Билл выходит из полицейского управления, расположенного около юго-западного угла его участка, обходит свой участок и возвращается в управление. Во время обхода Билл должен пройти по каждому отрезку улицы на территории своего участка как минимум один раз. Известно, что во время обхода Билл проходит отрезок длиной 100 метров за одну минуту. Выясните, какое минимальное число минут потребуется Биллу, чтобы совершить обход.

Входные данные

Вводятся целые числа N и M, разделенные пробелом (1\( \le\)N, M\( \le\)10 000).

Выходные данные

Выведите минимальное время, за которое Билл может совершить обход.

Пояснение ко второму примеру

Один из возможных оптимальных путей для Билла во втором примере показан на рисунке.

Примеры
Входные данные
1 1
Выходные данные
4
Входные данные
2 2
Выходные данные
16
Входные данные
3 4
Выходные данные
38
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes
Дана запись таблицы, в формате, похожем на csv. Необходимо для каждой ячейки определить, какой тип в ней хранится.

Электронная таблица представляет собой прямоугольную таблицу, левая и верхняя граница которой зафиксированы, а правая и нижняя отсутствуют, таким образом, таблица бесконечна вправо и вниз. В каждой ячейке таблицы может быть записано какое-либо значение. Значение ячейки – это произвольная последовательность символов с кодами от 32 до 126.

При сохранении таблицы в файл она записывается в специальном формате. Ячейки перечисляются в файле, начиная с левой верхней, по строкам сверху вниз, внутри строки слева направо. В каждой строке перечисляется несколько подряд идущих ячеек, начиная с первой, при этом заведомо перечисляются все непустые ячейки данной строки. Всего в файл выводится несколько подряд идущих строк, начиная с первой, при этом выводятся, как минимум, все строки, в которых содержится хотя бы одна непустая ячейка.

Значения соседних ячеек при записи в файл разделяются между собой символом ","(запятая), строки таблицы отделяются друг от друга символом ";" (точка с запятой). После последней клетки идет символ "." (точка). За каждым из этих символов может немедленно следовать один перевод строки, который должен игнорироваться. Другие переводы строки во файле не встречаются.

Если в значении ячейки встречается один из символов ",", ";", ".'"или "\", то в файл записывается два символа – сначала "\", а затем данный символ. Соответственно, запятая, точка с запятой и точка, которые идут непосредственно после "\", не являются разделителями значений ячеек. В частности, после них не может следовать перевода строки.

Каждая ячейка относится к одному из трех типов: числовая, строковая, пустая. Пустая ячейка – это ячейка, значение которой является пустой строкой. Числовая ячейка содержит целое число из диапазона от -32768 до 32767 включительно. Число должно быть записано без ведущих нулей и лишних знаков "+" или "-" (знак "-'" должен быть только у отрицательных чисел, причем ровно один). Любая другая ячейка относится к строковому типу. Так, например, к строковому типу относятся ячейки, содержащие следующие значения: 01 (включает ведущий нуль), 55000 (не входит в указанный диапазон), а также ячейка, содержащая один символ "пробел".

Столбец таблицы называется пустым, если все ячейки, которые он содержит – пустые. Столбец таблицы называется числовым, если он содержит только числовые и пустые ячейки. В противном случае столбец называется строковым. Требуется для каждого столбца таблицы, начиная с первого, и до последнего непустого, определить, к какому типу он относится.

Входные данные

На вход программы поступает электронная таблица, размер входных данных не превышает 32767 байт.

Выходные данные

Для всех столбцов, начиная с первого, и до последнего непустого столбца, выведите их тип, разделив значения запятыми, и в конце поставьте точку. В качестве типа столбца выведите одно из следующих значений: "EMPTY'', если столбец является пустым, "NUMBER'', если столбец является числовым, "STRING'', если столбец является строковым.

Пояснение к первому примеру

Таблица для первого примера приведена ниже. Символ "пробел" обозначен как □

Примеры
Входные данные
;,12;,, ;
;,17,2,,-1\.0.
Выходные данные
EMPTY,NUMBER,STRING,EMPTY,STRING.
Входные данные
.
Выходные данные
.
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes
Над двумерной таблицей введена операция A, которая по координатам клетки, направлению и числу, прибавляет это число ко всем ячейкам от начальной в заданном направлении. Также определена операция B, которая вызывает операцию A для всех ячеек заданного прямоугольника.

Специальный терминал, разработанный в лаборатории, где работает Дима, представляет собой горизонтальный прямоугольник, состоящий из m×n ячеек, каждая из которых может содержать произвольное целое число. Ячейки занумерованы парами чисел, левая верхняя ячейка имеет номер (1, 1), правая нижняя – (\(m\), \(n\)).

Специальное устройство ввода, сконструированное специально для этого терминала, позволяет отправлять терминалу две команды: \(A\)(\(r\), \(c\), \(d\), \(v\)) и \(B\)(\(r_1\), \(c_1\), \(r_2\), \(c_2\), \(d\), \(v\)).

Рассмотрим сначала команду \(A\). Параметры \(r\) и \(c\) изменяются в пределах от 1 до \(m\) и от 1 до \(n\) соответственно и указывают, к какой ячейке применяется команда. Параметр \(d\) может принимать значение из множества {\(L\), \(R\), \(U\), \(D\)} и задает направление, в котором применяется команда: влево, вправо, вверх или вниз соответственно. Параметр \(v\) представляет собой целое неотрицательное число. В результате выполнения команды значения во всех ячейках, находящихся в направлении \(d\) от ячейки (\(r\), \(c\)), включая эту ячейку, увеличиваются на \(v\).

Например, если терминал имеет размер 5×4, то после выполнения команды \(A\)(3, 2, \(R\), 3) значения в ячейках (3, 2), (3, 3) и (3, 4) увеличатся на 3, а после команды \(A\)(2, 1, \(U\), 2) значения в ячейках (2, 1) и (1, 1) увеличатся на 2.

Рассмотрим теперь команду \(B\). Первые четыре ее параметра являются целыми числами и удовлетворяют условиям 1\( \le\) \(r_1\) \(\le\) \(r_2\) \(\le\) \(m\) и 1\( \le\) \(c_1\) \(\le\) \(c_2\) \(\le\) \(n\). Параметры \(d\) и \(v\) могут принимать те же значения, что и соответствующие параметры команды \(A\). Команда \(B\) выполняется следующим образом: для всех пар (\(r\), \(c\)), таких, что \(r_1\) \(\le\) \(r\) \(\le\) \(r_2\) и \(c_1\) \(\le\) \(c\) \(\le\) \(c_2\) выполняется команда \(A\)(\(r\), \(c\), \(d\), \(v\)).

Исходно все ячейки терминала содержат нули. Выведите содержимое терминала после выполнения заданной последовательности команд.

Входные данные

В первой строке вводятся числа \(m\) и \(n\), ( 1\( \le\)m, n\( \le\)200). В следующей строке задается число \(k\) – количество команд, которые следует обработать ( 0\( \le\)k\( \le\)40 000). Далее идут \(k\) строк, содержащих описания команд. Первый символ каждой строки задает тип команды, затем следует пробел и параметры команды, каждые два последовательных параметра разделены ровно одним пробелом. Параметр \(v\) каждой команды неотрицателен и не превышает 100.

Общее число команд \(A\), которое потребуется выполнить на терминале, включая команды, которые придется выполнить при выполнении команд \(B\), не превышает 5 * \(10^6\).

Выходные данные

Выведите \(m\) строк по \(n\) чисел в каждой – содержимое терминала после выполнения указанной последовательности команд.

Примеры
Входные данные
5 4
4
A 2 2 D 1
A 3 4 L 2
B 2 3 3 4 U 13
B 1 1 2 1 R 5
Выходные данные
5 5 31 31 
5 6 31 31 
2 3 15 15 
0 1 0 0 
0 1 0 0 
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes
В ориентированном графе ребро задается 4 числами: начальной и конечной вершинами, временем отправления и временем прибытия. Причем, время прибытия может быть меньше либо равно времени отправления.

Между \(N\) населенными пунктами совершаются пассажирские рейсы на машинах времени.

В момент времени 0 вы находитесь в пункте \(A\). Вам дано расписание рейсов. Требуется оказаться в пункте B как можно раньше (то есть в наименьший возможный момент времени).

При этом разрешается делать пересадки с одного рейса на другой. Если вы прибываете в некоторый пункт в момент времени \(T\), то вы можете уехать из него любым рейсом, который отправляется из этого пункта в момент времени \(T\) или позднее (но не раньше).

Входные данные

В первой строке вводится число \(N\) – количество населенных пунктов ( 1\( \le\)N\( \le\)1000). Вторая строка содержит два числа \(A\) и \(B\) – номера начального и конечного пунктов. В третьей строке задается \(K\) – количество рейсов ( 0\( \le\)K\( \le\)1000). Следующие \(K\) строк содержат описания рейсов, по одному на строке. Каждое описание представляет собой четверку целых чисел. Первое число каждой четверки задает номер пункта отправления, второе – время отправления, третье – пункт назначения, четвертое – время прибытия. Номера пунктов – натуральные числа из диапазона от 1 до \(N\). Пункт назначения и пункт отправления могут совпадать. Время измеряется в некоторых абсолютных единицах и задается целым числом, по модулю не превышающим \(10^9\). Поскольку рейсы совершаются на машинах времени, то время прибытия может быть как больше времени отправления, так и меньше, или равным ему.

Гарантируется, что входные данные таковы, что добраться из пункта \(A\) в пункт \(B\) всегда можно.

Выходные данные

Выведите минимальное время, когда вы сможете оказаться в пункте \(B\).

Примеры
Входные данные
2
1 1
2
1 1 2 10
1 10 1 9
Выходные данные
0
Входные данные
1
1 1
3
1 3 1 -5
1 -5 1 -3
1 -4 1 -10
Выходные данные
-10
Входные данные
5
1 2
6
1 0 3 10
4 2 2 -10
4 14 2 -7
3 10 2 10
2 0 4 2
3 10 4 12
Выходные данные
-10
#536
  
Источники: [ Командные олимпиады, ВКОШП, 2002, Задача A ]
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes
На прямоугольной таблице находятся монстры. Каждый монстр характеризуется координатами и направлением движения. Монстр идет до конца поля и оставляет следы. Необходимо определить суммарное количество испачканных клеток.

В одной секретной лаборатории вывели новый вид маленьких монстров, размером чуть больше суслика. В ходе исследований ученые решили поставить следующий эксперимент. В центре комнаты устанавливается прямоугольный стол, поверхность которого разбита на \(N\) х \(M\) клеток размера 1 х 1. В начальный момент времени на некоторых его клетках располагаются монстры, смотрящие параллельно сторонам стола. По команде экспериментатора монстры начинают двигаться по прямой в ту сторону, в которую они смотрят, доходят до края стола и спрыгивают на пол. Там их собирает лаборант Петя и относит в клетку.

Поскольку у монстров очень грязные лапки, они оставляют следы на тех клетках, на которых они побывали. Так как отмывать стол придется лаборанту Пете, его заинтересовал вопрос - в каком количестве клеток побывают монстры. Помогите ему решить эту сложную задачу.

Входные данные

В первой строке вводятся числа \(M\) и \(N\) - размеры лабораторного стола (1 <= \(M\), N <= \(10^6\)). В следующей строке задается число \(K\) - количество монстров (0 <= \(K\) <= \(10^3\)). Следующие \(K\) строк содержат описания монстров - два целых числа и один символ из множества {\(N\), \(E\), \(S\), \(W\)} - начальные координаты и направление соответствующего монстра (соответствие направлений и координат приведено на рисунке 1). Символ отделен от чисел ровно одним пробелом.

Выходные данные

Выведите единственное число - количество клеток стола, на которых побывают монстры.

Пояснение к примеру

Пример соответствует расположению монстров, приведенному на рисунке 1.монстры.

Примеры
Входные данные
8 5
4
4 4 S
6 2 W
6 3 N
6 4 S
Выходные данные
13


Страница: << 5 6 7 8 9 10 11 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест