Codeforces Round 110 (Div. 1) |
---|
Закончено |
Расследуя очередное убийство, Шерлок Холмс определил n подозреваемых. Он точно знает, что убийство совершил ровно один из них. Чтобы определить, кто именно это сделал, детектив выстроил подозреваемых в ряд и пронумеровал их числами от 1 до n. После этого он спросил каждого: «Кто из вас совершил убийство?». Подозреваемый номер i ответил либо «Убийство совершил подозреваемый номер ai», либо «Подозреваемый номер ai не совершал убийства». В том числе, подозреваемый мог сказать это про себя (ai = i).
Шерлок Холмс безошибочно определил, что ровно m ответов были правдой, а все остальные — ложью. Помогите ему теперь понять, кто из подозреваемых соврал, а кто сказал правду?
В первой строке заданы два целых числа n и m (1 ≤ n ≤ 105, 0 ≤ m ≤ n) — общее количество подозреваемых и количество подозреваемых, сказавших правду. В следующих n строках заданы ответы подозреваемых. В i-ой строке написано «+ai» (без кавычек), если подозреваемый номер i говорит, что убийство совершил подозреваемый номер ai, или «-ai» (без кавычек), если подозреваемый номер i говорит, что подозреваемый номер ai не совершал убийства (ai — целое число, 1 ≤ ai ≤ n).
Гарантируется, что существует хотя бы один подозреваемый, такой, что если он совершил убийство, то правду сказали ровно m человек.
Выведите n строк. В строке номер i должно быть написано «Truth», если подозреваемый номер i точно сказал правду, «Lie», если подозреваемый номер i точно соврал, и «Not defined», если он мог соврать, а мог и сказать правду, в зависимости от того, кто совершил убийство.
1 1
+1
Truth
3 2
-1
-2
-3
Not defined
Not defined
Not defined
4 1
+2
-3
+4
-1
Lie
Not defined
Lie
Not defined
В первом примере есть единственный человек, и он признается в убийстве, и Шерлок Холмс знает, что один человек сказал правду. Значит, этот человек говорит правду.
Во втором примере трое подозреваемых и все трое отрицают свою вину. Шерлок Холмс знает, что только двое из них говорят правду. Любой из них может быть убийцей, и поэтому ни про кого из них неизвестно, говорит ли он правду.
В третьем примере второй и четвертый защищают первого и третьего. Но правду сказал только один, значит, первый или третий совершил убийство. Оба они могли совершить убийство, значит, второй и четвертый могут как врать, так и говорить правду. Первый и третий же точно врут, поскольку сваливают вину на второго и четвертого.
Название |
---|