Logo
(追記) (追記ここまで)

29003번 - Рейнджеры в автобусе 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB42250.000%

문제

Не каждый день могучие рейнджеры надевают свои костюмы. Сами посудите: как нелепо они бы смотрелись, скажем, в общественном транспорте, если бы не снимали их!

Это создаёт определённые трудности злодеям, которые хотят выследить их. Вот и сегодня Рита Репульса не может их поймать, потому что не знает, как они выглядят без костюмов.

Рита следит за автобусом, в котором, по её мнению, едет кто-то из рейнджеров. В салоне автобуса $n$ рядов сидений, в каждом из которых по два места --- слева и справа от прохода. Ряды пронумерованы от 1ドル$ до $n,ドル начиная с передней части автобуса. На конечной остановке в автобус по очереди зашли $k$ человек, и Рита знает, кто на какое место сел и в каком порядке. Кроме того, ей известно, как каждый из рейнджеров выбирает себе место, когда заходит в автобус:

  • Красный рейнджер любит сидеть впереди. Поэтому среди свободных мест он всегда выбирает место в ряду с наименьшим номером. Если же в этом ряду свободно два места, он садится слева от прохода.
  • Синий рейнджер тоже любит сидеть впереди. Но, в отличие от красного, когда в ряду с наименьшим номером свободно два места, Синий садится справа.
  • Чёрный рейнджер любит сидеть сзади. Среди свободных мест он всегда выбирает место в ряду с наибольшим номером, а если там свободно два места, то садится слева от прохода.
  • Жёлтый рейнджер тоже, любит сидеть сзади. Но, в отличие от чёрного, когда в ряду с наибольшим номером свободно два места, жёлтый садится справа.
  • Розовый рейнджер не имеет никаких предпочтений и может сесть на любое свободное место.

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

입력

В первой строке входного файла заданы числа $n$ и $k$ --- количество рядов в автобусе и количество пассажиров (1ドル\leq n\leq 10^9,ドル 1ドル\leq k\leq min(2\cdot10^5,2n)$).

В следующих $k$ строках описаны пассажиры в том порядке, в котором они заходили в автобус.

В $i$-й из этих строк заданы числа $x_i$ и $y_i$ --- место, на которое сел $i$-й пассажир (1ドル\leq x_i\leq n,ドル 1ドル\leq y_i\leq 2$), $x_i$ --- это номер ряда, $y_i=1,ドル если это место слева от прохода, и $y_i=2,ドル если справа.

Все места, на которые сели пассажиры, различны.

출력

В первой строке выходного файла выведите число $s_1$ --- количество пассажиров, которые могли бы быть красным рейнджером, а затем, через пробел, $s_1$ чисел --- номера этих пассажиров в порядке возрастания (пассажиры нумеруются с 1ドル$ по $k$ в том порядке, в котором они заданы во входном файле).

В следующих четырёх строках выведите в том же формате информацию об остальных рейнджерах: синем, чёрном, жёлтом и розовом соответственно.

제한

예제 입력 1

3 4
1 1
1 2
3 2
2 1

예제 출력 1

3 1 2 4
1 2
0
1 3
4 1 2 3 4

노트

На этой картинке показаны места, на которые садились пассажиры в примере.

출처

Olympiad > Russian Olympiad in Informatics > Internet Olympiads in Informatics > 2016-2017 Season > March 19, 2017 B번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /