2001. Counting Sheep
Input
Input will consist of multiple problem instances. The first line will consist of a single positive integer n ≤ 20, which is the number of problem instances. The input for each problem instance will be on two lines. The first line will consist of a positive integer m ≤ 10 and the second line will consist of m words, separated by a single space and each containing no more than 10 characters.
Output
For each problem instance, you are to produce one line of output in the format:
Case i: This list contains n sheep.
The value of i is the number of the problem instance (we assume we start numbering at 1) and n is the number of times the word "sheep" appears in the list of words for that problem instance. Two successive lines should be separated by a single blank line, but do not output any trailing blank line.
Sample Input
4 5 shep sheeps sheep ship Sheep 7 sheep sheep SHEEP sheep shepe shemp seep 10 sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep 4 shape buffalo ram goat
Sample Output
Case 1: This list contains 1 sheep. Case 2: This list contains 3 sheep. Case 3: This list contains 10 sheep. Case 4: This list contains 0 sheep.
Source: East
Central North America 2000 Practice
1 #include <stdio.h> 2 #include <string.h> 3 4 char str[150]; 5 char sheep[6] = "sheep"; 6 7 int main () 8 { 9 int m,n; 10 int numCount; 11 scanf("%d",&m); 12 int i=0; 13 while(i<m) 14 { 15 numCount=0; 16 scanf("%d",&n); 17 getchar(); 18 gets(str); 19 char *ptr = str; 20 while(n--) 21 { 22 int j; 23 if((memcmp(ptr,sheep,5) == 0)&&((*(ptr+5) == ' ')||(*(ptr+5) == '\0'))) 24 { 25 numCount++; 26 ptr+=6; 27 } 28 else 29 { 30 for(j=0;j<11;j++) 31 { 32 if(*ptr++ != ' ') 33 continue; 34 break; 35 } 36 } 37 } 38 printf("Case %d: This list contains %d sheep.\n",++i,numCount); 39 if(i<m) 40 printf("\n"); 41 numCount = 0; 42 } 43 return 0; 44 }