题目大意:
和zoj1405是同一道题。
Tan Your Hide, Inc., 拥有几个硬币操作的tanning沙龙。研究显示如果一个顾客到达没有座位,顾客将会离开,因此公司损失。你的任务是写一个程序算出多少顾客因为没有tanning而离开。
输入包括N,表示沙龙的个数。接下来是一系列大写字母,成对出现。字母第一次出现表示顾客到来,第二次出现表示顾客离开
解题思路:
模拟顾客进店过程就行了
代码如下:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int n,i,num,leave,max;
char str[20000];
int letter[30];
while(scanf("%d",&n)!=EOF&&n)
{
num=leave=max=0;
getchar();
gets(str);
for(i=0;i<30;i++)
{
letter[i]=0;
}
for(i=0;i<strlen(str);i++)
{
if(letter[str[i]-'A']==0)
{
letter[str[i]-'A']=1;
num++;
if(num>n)
{
leave++;
}
}
else if(letter[str[i]-'A']==1)
{
letter[str[i]-'A']=0;
num--;
}
}
if(leave==0)
{
printf("All customers tanned successfully.\n");
}
else
{
printf("%d customer(s) walked away.\n",leave);
}
}
return 0;
}
651

被折叠的 条评论
为什么被折叠?



