1318 - Bilhetes Falsos
Checar bilhetes falsos nunca foi tão fácil!
Descrição
Solução
Como esse problema envolve saber a quantidade de identificadores que foram duplicados, uma simples operação com conjuntos não conseguirá resolver o problema. Entretanto, a solução continua simples, basta usar um vetor para monitorar quantos bilhetes daquele identificador já foram lidos até o momento e contabilizar que tal identificador foi duplicado quando, e somente quando, encontrarmos o mesmo bilhete pela segunda vez. Isso é porque nós só precisamos saber se ele foi duplicado e, para isso, apenas dois bilhetes bastam.
#include <string.h>
#include <stdio.h>
int main(){
int bilhetes[10001];
int N, M, T, resposta;
while(scanf("%d %d", &N, &M)){
if(!N && !M) break;
resposta = 0;
memset(bilhetes, 0, sizeof(bilhetes));
for(int i = 0; i < M; ++i){
scanf("%d", &T);
++bilhetes[T];
if(bilhetes[T] == 2) ++resposta;
}
printf("%d\n", resposta);
}
return 0;
}
Last updated
Was this helpful?