| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我写的这个代码,照样输出为1,同样waIn Reply To:Re:如果输入为:1 ABCCAB时,输出应为1,而不是2;我WA了一次才发现的 Posted by:PengPeng at 2005-12-05 13:07:15 我写的这个代码,照样输出为1,同样wa
#include<iostream>
using namespace std;
int beds ;
char salon[25];
bool wait[26];
bool newer[26];
void sol()
{
int len = strlen(salon);
int left = 0 , lb = beds;
for ( int i = 0 ; i < len ; ++ i )
{
if ( newer[salon[i] - 'A'] == false ) //新来的
{
if ( lb > 0 )
{
-- lb ; //霸着床位
}
else //进入等待队列,如果出来时还没有床位,那就离开了
{
wait[salon[i] - 'A'] = true;
}
newer[salon[i] - 'A'] = true; //已不是新来的
}
else
{
if ( wait[salon[i] - 'A' ] == false ) //曾是霸着位的主儿
{
++ lb;
}
else if ( wait[salon[i] - 'A' ] == true && lb > 0 ) //如果在等待而且有床位了
{
wait[salon[i] - 'A'] = false;
-- lb;
}
else //等不及了,走了
{
++ left ;
wait[salon[i] - 'A'] = false;
}
}
}
if (left)
printf("%d customer(s) walked away.\n" , left);
else
printf("All customers tanned successfully.\n");
}
int main()
{
while( scanf("%d",&beds) , beds != 0 )
{
memset(newer,0,sizeof(newer));
memset(wait,0,sizeof(wait));
scanf("%s",salon);
sol();
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator