当前位置: 首页 > 工具软件 > Posterita POS > 使用案例 >

Postcards and Photos

谭翰海
2023-12-01

Polycarpus has postcards and photos hung in a row on the wall. He decided to put them away to the closet and hang on the wall a famous painter’s picture. Polycarpus does it like that: he goes from the left to the right and removes the objects consecutively. As Polycarpus doesn’t want any mix-ups to happen, he will not carry in his hands objects of two different types. In other words, Polycarpus can’t carry both postcards and photos simultaneously. Sometimes he goes to the closet and puts the objects there, thus leaving his hands free. Polycarpus must put all the postcards and photos to the closet. He cannot skip objects. What minimum number of times he should visit the closet if he cannot carry more than 5 items?

Input
The only line of the input data contains a non-empty string consisting of letters “С” and “P” whose length does not exceed 100 characters. If the i-th character in the string is the letter “С”, that means that the i-th object (the numbering goes from the left to the right) on Polycarpus’ wall is a postcard. And if the i-th character is the letter “P”, than the i-th object on the wall is a photo.

Output
Print the only number — the minimum number of times Polycarpus has to visit the closet.

Examples
Input
CPCPCPC

Output
7

Input
CCCCCCPPPPPP

Output
4

Input
CCCCCCPPCPPPPPPPPPP

Output
6

Input
CCCCCCCCCC

Output
2

Note
In the first sample Polycarpus needs to take one item to the closet 7 times.
In the second sample Polycarpus can first take 3 postcards to the closet; then 3 more. He can take the 6 photos that are left in the similar way, going to the closet twice.
In the third sample Polycarpus can visit the closet twice, both times carrying 3 postcards. Then he can take there 2 photos at once, then one postcard and finally, he can carry the last 10 photos if he visits the closet twice.
In the fourth sample Polycarpus can visit the closet twice and take there all 10 postcards (5 items during each go).

分析:明信片和照片不能一起拿,只能分开拿,而且拿明信片和照片时一次最多能拿5张,问拿走所有的明信片和照片最少需要的次数,需要运用到字符串和for循环的相关知识。

代码如下:

#include"stdio.h"
#include"cstring"
int main()
{
	int len,count,num;
	char str[105],t;
    scanf("%s",str);//输入字符串 
    num=1;
	count=0;
	t=str[0];//把第一个数取出来 
    len=strlen(str);//字符串的长度 
    for(int j=1;j<len;j++)
	{
	    if(t==str[j])
		{
			count++; 
			if(count==5)
			{
				num++;//一次最多能拿5张 
				count=0;
			}
		}
		else
		{
			t=str[j];
			num++;
			count=0;	
		}
	}
    printf("%d\n",num);
    return 0;
}
 类似资料:

相关阅读

相关文章

相关问答