— Algo está mal no negócio da família! Diz o padrinho da máfia
local.
— Muitos querem mandar e poucos querem fazer. E temos ainda quem nos
traia e fale
com a polícia! Continua ele.
— Tenho de mandar tratar do assunto! Afinal, sou ou não sou o padrinho
aqui?
Qual o desfecho de uma ordem que o padrinho dá:
Será executada? Ficará por executar? Ou a polícia será informada?
Admita que a família tem membros, além do padrinho, os quais são identificados por
inteiros de a .
O que o membro da família faz quando recebe uma ordem é
representado por um inteiro , que pode significar uma de três coisas:
- Se ou ,
o membro da família conta à polícia! É um
informador.
- Se e ,
então o membro da família gosta de dar ordens e
ordena ao membro que faça o que lhe foi pedido.
É um mandrião.
- No caso que resta, quando ,
o membro da familia é alguém que faz o que lhe é pedido.
É um executante, bem ao gosto do padrinho.
Pretendemos um programa que calcule o número de mandriões pelos
quais é preciso passar até chegar a um executante, quando a ordem é
dada a um determinado membro da família.
Por exemplo, na família:
se a ordem for dada ao membro ,
que é um executante, a ordem passa por (zero) mandriões.
Mas, se a ordem fosse dada ao membro ,
passaria por mandriões:
o mandrião 0 passaria a ordem a 2,
o mandrião 2 passaria a ordem a 8 e
o mandrião 8 passaria a ordem a 5,
que a executaria ( ).
Há situações em que o número de mandriões não está definido.
Designamo-las por caso POLICIA e caso INCOMPETENTE.
No primeiro caso, a ordem acaba na polícia.
Por exemplo, se a ordem for dada ao membro , este passa-a ao informador .
No segundo caso, a ordem não chega à polícia mas também não é executada.
Por exemplo, se a ordem for dada ao membro ,
fica a circular por alguns membros da família:
A primeira linha da entrada tem um inteiro ,
que representa o número de elementos da família (para além do padrinho).
Seguem-se linhas, cada uma com um inteiro , que indica o que o
membro faz (começando pelo membro e terminando no membro ).
Depois, há uma linha com um inteiro, ,
que indica a quem o padrinho dá a ordem.
|
|
Número de membros da família (para além do padrinho) |
|
|
Membro a quem o padrinho dá a ordem
|
|
|
Indica o que o membro faz (para )
|
O output tem uma linha com:
- a palavra "POLICIA",
caso a ordem acabe na polícia;
- a palavra "INCOMPETENTE",
caso a ordem não seja executada nem acabe na polícia;
- um inteiro que representa o número de mandriões pelos quais a ordem passa,
caso seja executada.
10
2
3
8
10
6
5
7
9
5
6
4
INCOMPETENTE
10
2
3
8
10
6
5
7
9
5
6
0
3
12
6
2
8
3
10
19
8
-2
7
11
10
1
9
POLICIA
ToPAS'2024
|