Looksery Cup 2015 |
---|
Закончено |
В компании Looksery, состоящей из n сотрудников, намечается очередная большая вечеринка. У каждого сотрудника в телефонной книге записан свой номер и номера друзей. Каждый, кто приходит на вечеринку, рассылает сообщения своим контактам о том, как там классно. При этом все стараются как можно больше времени потратить на веселье, поэтому рассылают сообщения всем, без разбора, и даже себе.
Игорь и Макс — разработчики Looksery — затеяли спор, кому сколько придёт сообщений. Игорь указывает n чисел, i-е из которых обозначает, сколько, по его мнению, сообщений придет i-му сотруднику. Если Игорь угадает правильно хотя бы одно из этих чисел, то он выиграет, в противном случае выиграет Макс.
Вы поддерживаете Макса в этом споре, поэтому вам требуется по заданным спискам контактов сотрудников определить, существует ли расклад, при котором Игорь проиграет. Точнее, Вам нужно определить, кто из сотрудников должен прийти на вечеринку, а кто — нет, так чтобы после того, как все пришедшие разошлют сообщения своим контактам, каждый сотрудник получил число сообщений отличное от того, что указал Игорь.
В первой строке задано одно целое число n (1 ≤ n ≤ 100) — количество сотрудников компании Looksery.
В следующих n строках задано описание списков контактов сотрудников. В i-й из этих строк записана строка длины n, состоящая из нулей и единиц, задающая список контактов i-го сотрудника. Если j-й символ i-й строки равен 1, то j-ый сотрудник находится в списке контактов i-го, в противном случае — не находится. Гарантируется, что i-й символ i-й строки всегда равен 1.
В последней строке задано n целых чисел, разделенных пробелами: a1, a2, ..., an (0 ≤ ai ≤ n), где ai обозначает число сообщений, которое должен получить i-й сотрудник по мнению Игоря.
В первой строке выведите одно целое число m — количество сотрудников, которые должны прийти на вечеринку, чтобы Игорь проиграл спор.
Во второй строке через пробел выведите m целых чисел — номера этих сотрудников в произвольном порядке.
Если же Игорь в любом случае выиграет спор, выведите -1.
Если возможных ответов несколько, выведите любой из них.
3
101
010
001
0 1 2
1
1
1
1
1
0
4
1111
0101
1110
0001
1 0 1 0
4
1 2 3 4
В первом примере по мнению Игоря первый сотрудник получит 0 сообщений. Т.к. его нет в списке контактов других сотрудников, то он должен прийти на вечеринку, чтобы получить сообщение от самого себя. Если на вечеринку придет только первый сотрудник, то он получит 1 сообщение, второй — 0 сообщений, и третий также 1 сообщение. В итоге Игорь не угадает ни одного числа.
Во втором примере, если единственный сотрудник придет на вечеринку, то он получит 1 сообщение и Игорь победит в споре, следовательно ему не стоит этого делать.
В третьем примере первый сотрудник компании получит 2 сообщения, второй — 3, третий — 2, четвертый — 3.
Название |
---|