Podemos considerar que a entrada sempre vai ter o formato de um número entre 20 e 44 (ou seja, sempre dois dígitos), um caractere de espaço, uma letra (M ou F) e outro caractere de espaço, num total de 5 caracteres para cada sapato.
Com isso, podemos usar uma tática parecida com a do problema 1217 - Getline Two - Frutas para a obtenção das informações em linguagens de baixo nível.
#include <string.h>
#include <stdio.h>
int main()
{
char genero, linha[1000];
int caso, tamanho_desejado, masculino, feminino, tamanho;
caso = 0;
while (scanf("%d\n", &tamanho_desejado) != EOF)
{
if (caso > 0)
printf("\n");
scanf("%[^\n]\n", &linha);
masculino = feminino = 0;
for (int i = 0; i < strlen(linha); i += 5)
{
tamanho = 10 * (linha[i] - '0') + (linha[i + 1] - '0');
genero = linha[i + 3];
if (tamanho == tamanho_desejado)
{
if (genero == 'F')
++feminino;
else
++masculino;
}
}
printf("Caso %d:\n", ++caso);
printf("Pares Iguais: %d\nF: %d\nM: %d\n", feminino + masculino, feminino, masculino);
}
return 0;
}