-
Notifications
You must be signed in to change notification settings - Fork 39
/
Copy path1062.poti
30 lines (28 loc) · 917 Bytes
/
1062.poti
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
reorganizar(entrada: Lista[Inteiro]) =
organizar(entrada.inverta, [], entrada.tamanho, 0, entrada.tamanho)
organizar(entrada, pilha: Lista[Inteiro], t_entrada, t_pilha, proximo: Inteiro): Lógico =
se t_entrada == 0 e t_pilha == 0 entao
verdadeiro
senaose t_pilha > 0 e pilha.cabeca == proximo entao
organizar(entrada, pilha.cauda, t_entrada, t_pilha - 1, proximo - 1)
senaose t_entrada > 0 entao
se entrada.cabeca == proximo entao
organizar(entrada.cauda, pilha, t_entrada - 1, t_pilha, proximo - 1)
senao
organizar(entrada.cauda, entrada.cabeca::pilha, t_entrada -1, t_pilha + 1, proximo)
fim
senao
falso
fim
enquanto leia_inteiro > 0 faca
var s := leia_inteiros(" ")
enquanto s.cabeca > 0 faca
se reorganizar(s) entao
escreva "Yes"
senao
escreva "No"
fim
s := leia_inteiros(" ")
fim
escreva ""
fim