n свидетелей. Каждый из них либо **честный** — всегда говорит правду, — либо **нечестный** — может как сказать правду, так и соврать.
Свидетели высказались друг о друге. Дана матрица claims размером n × n:
- claims[i][j] = 1 — свидетель i утверждает, что j честный;
- claims[i][j] = 0 — свидетель i утверждает, что j нечестный;
- claims[i][j] = 2 — свидетель i ничего не сказал о j.
О себе никто не высказывается: claims[i][i] = 2.
Верните наибольшее число свидетелей, которые могут оказаться честными без противоречий с их же словами.claims=[[2, 1, 0], [2, 2, 2], [2, 2, 2]] → 2
Все трое честными быть не могут: тогда 0 сказал бы правду о том, что 2 лжец. Если 0 честен, честны 0 и 1. Если 0 нечестен, честными могут быть 1 и 2. Больше двух не получится.
claims=[[2, 0], [0, 2]] → 1
Каждый называет другого лжецом, поэтому оба честными быть не могут, а один — может.
claims=[[2, 2], [2, 2]] → 2
claims=[[2, 1, 0], [2, 2, 2], [2, 2, 2]]
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 74 теста на сервере, включая скрытые.