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

20447번 - Вирусы 서브태스크다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB409758.333%

문제

Одной из важнейших задач современной информатики является моделирование биологических процессов. Недавно биологи обнаружили $n$ вирусов, каждому из которых был присвоен уникальный кодовый номер от 1ドル$ до $n$. Вирус обладает возможностью встраиваться в клетки других организмов. Изначально в распоряжении ученых находятся $n$ клеток, пронумерованных от 1ドル$ до $n,ドル при этом клетка с номером $i$ заражена вирусом $i$. Каждая клетка может быть заражена только одним вирусом.

Для каждой клетки был установлен уровень её восприимчивости к каждому из вирусов. А именно, для каждой клетки известен вирус, к которому она наиболее восприимчива, к какому из оставшихся вирусов она наиболее восприимчива, и так далее.

Зараженные вирусами клетки атакуют друг друга. Пусть клетка с номером $i$ сейчас заражена вирусом с номером $a$ и атакует клетку с номером $j,ドル которая заражена вирусом с номером $b$. Тогда, если клетка с номером $j$ является более восприимчивой к вирусу $a,ドル чем к вирусу $b,ドル то клетка с номером $j$ становится заражена вирусом $a$.

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

Ученые называют вирус с номером $i$ стабильным, если при любой последовательности атак клетками друг друга, приводящей к завершению эксперимента, останется хотя бы одна клетка, зараженная вирусом с номером $i$.

Ученые называют вирус с номером $i$ жизнеспособным, если существует такая последовательность атак клетками друг друга, приводящая к завершению эксперимента, после которой останется хотя бы одна клетка, зараженная вирусом с номером $i$.

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

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

Наконец, пусть есть два вируса, и обе клетки более восприимчивы к вирусу с номером 1. Тогда атака клеткой 2 клетки 1 не приводит к изменению вируса, которым она заражена, а если клетка 1 атакует клетку 2, то вторая клетка становится зараженной вирусом 1. Следовательно эксперимент завершится после атаки клетки 1 клеткой 2, вирус 1 является стабильным и жизнеспособным, а вирус 2 не обладает ни тем, ни другим свойством.

Ученым необходимо отвечать на два типа вопросов, какие вирусы являются стабильными и какие вирусы являются жизнеспособными.

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

입력

В первой строке входных данных содержится целое число $n$ --- количество вирусов и, соответственно, клеток (1ドル \le n \le 500$).

Далее в $n$ строках содержатся описания клеток. Для каждой клетки указано $n$ различных чисел от 1ドル$ до $n$: номера вирусов в порядке убывания восприимчивости к ним этой клетки.

Последняя строка содержит число $p,ドル которая задаёт свойство вирусов, которое интересует ученых. Значение $p = 1$ означает, что ученые хотят определить все стабильные вирусы, а значение $p = 2$ означает, что ученые хотят определить все жизнеспособные вирусы.

출력

Первая строка выходных данных должна содержать целое $k$ --- количество вирусов, которые обладают интересующим ученых свойством (0ドル \le k \le n$).

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

제한

서브태스크

번호배점제한
111

1ドル \le n \le 5,ドル $p = 1$

221

1ドル \le n \le 500,ドル $p = 1$

322

1ドル \le n \le 5$

431

1ドル \le n \le 50$

515

1ドル \le n \le 500$

예제 입력 1

2
1 2
2 1
1

예제 출력 1

2
1 2

예제 입력 2

2
1 2
2 1
2

예제 출력 2

2
1 2

예제 입력 3

2
2 1
1 2
1

예제 출력 3

0

예제 입력 4

2
2 1
1 2
2

예제 출력 4

2
1 2

예제 입력 5

2
1 2
1 2
1

예제 출력 5

1
1

예제 입력 6

2
1 2
1 2
2

예제 출력 6

1
1

예제 입력 7

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

예제 출력 7

1
3

예제 입력 8

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

예제 출력 8

3
1 3 4

힌트

출처

Olympiad > Russian Olympiad in Informatics > Russian Olympiad in Informatics 2018 2번

채점 및 기타 정보

  • 예제는 채점하지 않는다.
(追記) (追記ここまで)

출처

대학교 대회

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

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