Plataforma: URI (BEECROWD)
Problema: 3249
Linguagens: C e C++
Enunciado:
Era uma vez um campeão de WoW
Arthasdk o nome que lhe foi dado
Ele Death Gripped você ao seu lado
Suas Chains of Ice pararam seu passo
E Obliterates fez você dizer "OWW!"
Mas um dia nosso herói ficou intrigado
Seu Death Grip fracassou totalmente
Em seu mais escuro desespero
Ele mal conseguia ouvir
”OMG NOOB u Chains of Iced então u Death Gripped”
Solução:
Esse exercício foi resolvido em C e C++. A lógica da solução é a mesma.
Na solução em C, um array de char foi declarado e lido dentro do for. Quando a comparação da palavra informada com "CD" fosse diferente de NULL o contador era incrementado. Essa comparação foi feita com strstr, uma função disponível na biblioteca string.h. Ao final, basta imprimir n-contador, sem esquecer do \n para quebrar a linha.
#include <stdio.h> #include <string.h> int main() { int n, i, contador = 0; char word[1010]; scanf("%d ", &n); for (i = 0; i < n; i++) { scanf("%s", word); if (strstr(word,"CD") != NULL) contador++; } printf("%d\n", n-contador); return 0; }
Em C++ foi feita a mesma coisa, mas temos o tipo string, então podemos aproveitá-lo. Aqui não usei strstr, mas sim o método find (disponível na biblioteca string). Se "CD" fosse encontrado, incrementava o contador.
#include <iostream> #include <string> using namespace std; int main() { int n, contador = 0; string word; cin >> n; cin.ignore(); for (int i = 0; i < n; i++) { cin >> word; if (word.find("CD") != std::string::npos) contador++; } cout << n-contador << endl; return 0; }