Автор: | Г. Гренкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Однажды Марфа Геннадьевна проснулась взволнованной. "Надо не забыть перевести часы на час назад", — подумала она. У Марфы Геннадьевны было двое часов. Одни механические, другие электронные. Электронные часы переводят время на час назад автоматически, механические — нет.
В определённые часы Марфа Геннадьевна смотрела на те и другие часы и записывала, сколько часов они показывали. Теперь Марфа Геннадьевна заинтересовалась, во сколько электронные часы перевели время.
Марфа Геннадьевна обратилась к вам за помощью. Напишите программу, принимающую на вход записи Марфы Геннадьевны и вычисляющую все возможные моменты времени, когда электронные часы могли перевести время на час назад. Известно, что электронные часы перевели время ровно один раз на час назад в 1, 2, ..., 22 или 23 часа.
Входной файл содержит целое число N — количество записей Марфы Геннадьевны. Далее следуют N пар чисел ai bi, где ai — количество часов, которое показывают механические часы, bi — количество часов, которое показывают электронные часы.
Требуется вывести в выходной файл целые числа, разделённые пробелами — все возможные моменты времени (часы), когда электронные часы могли перевести время, в порядке возрастания.
1 ≤ N ≤ 24
0 ≤ ai ≤ 23; 0 ≤ bi ≤ 22
a1 < a2 < … < aN; b1 ≤ b2 ≤ … ≤ bN
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Вначале найдём число k — максимальное i, для которого ai = bi. Тогда ответ — это числа от ak + 1 до ak + 1.
Если k = N, то нужно вывести числа от ak + 1 до 23. Если ai = bi + 1 для всех i, то ответ — это числа от 1 до a1. Эти случаи подходят под общий случай, если положить a0 = 0, aN + 1 = 23 и во втором случае k = 0.
var a: array[0..25] of integer; b: array[1..24] of integer; n, k, i: integer; begin assign(input, 'input.txt'); reset(input); assign(output, 'output.txt'); rewrite(output); read(n); for i := 1 to n do read(a[i], b[i]); k := 0; a[0] := 0; a[n+1] := 23; for i := 1 to n do begin if (a[i] = b[i]) then k := i; end; for i := a[k] + 1 to a[k+1] do write(i, ' '); close(input); close(output); end.