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. |
|---------------------------------------| |
| Exemplo de Entrada | Exemplo de Saída | |
|--------------------|------------------| |
| 3 | 1 | |
| 3 | 0 | |
| 100 80 90 | 4 | |
| 4 | | |
| 100 120 30 50 | | |
| 4 | | |
| 100 90 30 25 | | |
|---------------------------------------| |
*/ |
|
//Código do desafio: |
const inputs = [ //para uso local |
'3', |
'3', |
'100 80 90', |
'4', |
'100 120 30 50', |
'4', |
'100 90 30 ', |
]//para uso local |
let i = 0 //para uso local |
|
// const nCasos = parseInt(gets()); //para uso na DIO |
const nCasos = parseInt(inputs[i++]); //para uso local |
let nClientes = []; |
let senhas = []; |
|
for (let n = 0; n < nCasos; n++) { |
// nClientes[n] = parseInt(gets()); //para uso na DIO |
nClientes[n] = parseInt(inputs[i++]); |
|
// senhas[n] = gets().split(' '); //para uso na DIO |
senhas[n] = inputs[i++].split(' '); //para uso local |
|
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); |
//### Desafio - Fila do Banco |
Nenhum comentário:
Postar um comentário