Usando a estrutura de dados de conjuntos, o problema se torna muito mais fácil.
Descrição
Solução
Em todas as linguagens que possuem suporte para tal, você pode usar conjuntos para guardar os nomes de todos os Pomekons que você for encontrando e no final apenas subtrair 151 da quantidade de Pomekons diferentes que você encontrou.
Para linguagens que não possuem esse suporte, você pode ir colocando os Pomekons em um vetor e a cada novo Pomekon ver se ele já não está no vetor, mas tenha em mente que esse é um processo muito mais custoso do que usar conjuntos (complexidade de O(N²) versus O(N)). Felizmente, estamos lidando com apenas 1000 pomekons diferentes, então a complexidade quadrática é aceitável.
#include<string.h>#include<stdio.h>char pomekons[1001][101];intbusca(char* pomekon,int n){for(int i =0; i < n; ++i){if(!strcmp(pomekons[i], pomekon)) return i; }return-1;}intmain(){int N, p;char S[1001];memset(pomekons,'\0',sizeof(pomekons));scanf("%d\n",&N); p =0;for(int i =0; i < N; ++i){scanf("%s\n",&S);if(busca(S, N)==-1) strcpy(pomekons[p++], S); }printf("Falta(m) %d pomekon(s).\n",151- p);return0;}
var input =require('fs').readFileSync('/dev/stdin','utf8');var lines =input.split('\n');letN=parseInt(lines.shift());let pomekons =newSet();for(let i =0; i <N; ++i){letS=lines.shift().trim();pomekons.add(S);}console.log(`Falta(m) ${151-pomekons.size} pomekon(s).`);
N =int(input())pomekons =set()for _ inrange(N): S =input() pomekons.add(S)print(f"Falta(m) {151-len(pomekons)} pomekon(s).")