-
Notifications
You must be signed in to change notification settings - Fork 129
/
fila-do-banco.cs
63 lines (49 loc) · 2.05 KB
/
fila-do-banco.cs
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
51
52
53
54
55
56
57
58
59
60
61
62
63
// 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. */
using System;
using System.Collections.Generic;
public class Desafio {
public static void Main() {
int limit = int.Parse(Console.ReadLine());
for (int i = 0; i < limit; i++) {
if (i > 1000) return;
int pessoas = int.Parse(Console.ReadLine());
List<int> lista = new List<int>();
string[] line = Console.ReadLine().Split(" ");
foreach (string item in line) {
if (lista.Count > 1000) return;
lista.Add(int.Parse(item));
}
lista.Sort((a, b) => b.CompareTo(a));
int quantidade = pessoas;
for (int x = 0; x < lista.Count; x++) {
if (int.Parse(line[x]) != lista[x]) {
quantidade--;
}
}
Console.WriteLine(quantidade);
}
}
}