-
Notifications
You must be signed in to change notification settings - Fork 127
/
fila-do-banco.js
50 lines (37 loc) · 1.73 KB
/
fila-do-banco.js
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Fila do Banco
/* O banco que você trabalha sempre tem problemas para organizar as filas de
atendimento dos clientes.
Após uma reunião com a gerência ficou decidido que os clientes ao chegar na
agência receberão uma senha numérica em seu aparelho de celular via sms e que
a ordem da fila será dada não pela ordem de chegada, mas sim pelo número
recebido via sms. Sendo, aqueles com número maior deverão ser atendidos
primeiro.
Então, dada a ordem de chegada dos clientes reordene a fila de acordo com o
número recebido via sms, e diga quantos clientes não precisaram trocar de
lugar nessa reordenação.
- Entrada
A primeira linha contém um inteiro N, indicando o número de casos de teste a
seguir.
Cada caso de teste inicia com um inteiro M (1 ≤ M ≤ 1000), indicando o número
de clientes. Em seguida haverá M inteiros distintos Pi (1 ≤ Pi ≤ 1000), onde
o i-ésimo inteiro indica o número recebido via sms do i-ésimo cliente.
Os inteiros acima são dados em ordem de chegada, ou seja, o primeiro inteiro
diz respeito ao primeiro cliente a chegar na fila, o segundo inteiro diz
respeito ao segundo cliente, e assim sucessivamente.
- Saída
Para cada caso de teste imprima uma linha, contendo um inteiro, indicando o
número de clientes que não precisaram trocar de lugar mesmo após a fila ser
reordenada. */
const nCasos = parseInt(gets());
let nClientes = [];
let senhas = [];
for (let n = 0; n < nCasos; n++) {
nClientes[n] = parseInt(gets());
senhas[n] = gets().split(' ');
let senhasOrdenadas = Array.from(senhas[n]).sort((a, b) => b - a);
let contadorSemTroca = 0;
for (let i = 0; i < senhas[n].length; i++) {
senhas[n][i] === senhasOrdenadas[i] && (contadorSemTroca++);
}
console.log(contadorSemTroca);
}