hzauoj The Same Color (模拟)
2016-05-15 20:55
585 查看
Problem C: The Same Color
Time Limit: 1 Sec Memory Limit:128 MB
Submit: 993 Solved: 595
[Submit][Status][Web
Board]
Description
Diao Yang has many balls with different colors. Today he wants to divide his balls into two groups. But he does not know how to divide. Then Diao Ze gives him a suggestion: first you choose a ball and put it into the first group. Then from the second
ball, if the color of the ball is same to the last ball you has chosen, then you put the ball into the other group. Otherwise you put the ball into the same group with the last ball. Diao Yang thinks it is OK.
Then the problem is, Diao Yang wants to know the product of the number of two groups’ balls. Can you help him?
Input
The first line contains an integer T, indicating the number of test cases.
In each test case, there are several lines, each line contains only one string with lowercas, indicating the color of the ball Diao Yang has chosen currently. Diao Yang will stop choosing when the string is equal to “END”. Note that the string “END”
does not mean a color.
You can assume that there are at most 100 lines in each test case and each string has at most 10 letters.
Output
For each test case, output the answer in a line.
Sample Input
3 yellow yellow pink red red green END blue black purple purple END rose orange brown white END
Sample Output
9 3 0
HINT
In the first test case, the color of the first group’s balls are yellow, red, green, 3 balls in total. The color of the second group’s ballsare yellow, pink, red, 3 balls in total too. So the product is 3×3=9.
In the second test case, the answer is 3×1=3 and in the third test case the answer is 4×0=0.
//题意:
给你很多个不同颜色的球,现在要将这些球放到两个箱子里,放的要求为:
先将一个球放到一个箱子里,然后放第二个球,如果第二个球与最后一个球颜色相同,那么就将这个球放到另一个箱子里,然后重复上面的操作,最后输出两个箱子球的个数的乘机。
//思路:
直接模拟,对于每个球,对每个球进行操作,模拟它放到那个箱子中就行了
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
char s[30],c[30];
int main()
{
int t,i,j;
scanf("%d",&t);
while(t--)
{
int a=0,b=0;
int tmp;
memset(c,'\0',sizeof(c));
while(scanf("%s",s)&&strcmp(s,"END")!=0)
{
if(strcmp(s,c)==0)
{
b++;
tmp=a;a=b;b=tmp;
}
else
a++;
strcpy(c,s);
}
printf("%d\n",a*b);
}
return 0;
}
相关文章推荐
- Redis分布式解决方案-Coids
- Flea travel(别样A+B)
- eclipse启动tomcat中出现java.lang.OutOfMemoryError: PermGen space 解决办法
- Leetcode 238. Product of Array Except Self
- JAVA基础之包装类,static,final,abstract ,接口 和 内部类
- 比亚迪高级驾驶辅助系统ADAS 即将推出
- Java Web开发中MVC设计模式简介
- 【Linux开发】编写属于你的第一个Linux内核模块
- Spark Programming Guide (Python) Spark编程指南 (三)
- BZOJ3678: wangxz与OJ
- The Same Color
- QQLoginFrame 登录界面
- 高级驾驶辅助系统ADAS
- dedecms 的这个dede:arclist里怎么调用全局变量?
- 华中农业大学校赛--c The Same Color
- 原子操作的语义解读
- 刘遄:红帽 RHEL7 系统是一款很失败的产品吗?
- 浅谈null
- ADAS关键技术剖析、应用现状以及发展趋势
- php正则表达式