Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

高人指点啊!!!郁闷中………………

Posted by up at 2005-08-20 22:34:08 on Problem 1250
#include<iostream>
#include<string>
#define MAX 50
using namespace std;
typedef struct salon{
	int sign;
	char ch;
}salon;
salon s[MAX];
int z;
int num;
int yesorno(salon s[],int k)
{
	for(int i=0;i<k;i++)
		if(s[i].ch==s[k].ch)
		{
			z=i;
			if(s[i].sign==1)
				return 1;
			else if(s[i].sign>=2)
				return 2;
		}
	return 0;
}
int getth(salon s[],int n)
{
	int k=0;
	for(int i=0;i<n&&k<num;i++)
		if(s[i].sign==1)
			k++;
	return k;
}
void main()
{
	while(cin>>num&&num!=0)
	{
		char bed[MAX];
		string ss;
		cin>>ss;
		int ans=0;
		for(int i=0;i<ss.size();i++)
		{
			s[i].ch=ss[i];
			if(yesorno(s,i)==1)
			{
				s[z].sign=0;
				for(int k=0;k<i;k++)
					if(s[k].sign>=2)
					{
						s[k].sign=1;
						break;
					}
			}
			else if(yesorno(s,i)>=2)
			{
				s[z].sign=0;
				ans++;
			}
			else
			{
				if(getth(s,i)<num)
					s[i].sign=1;
				else s[i].sign=2;
			}
//			for(int j=0;j<=i;j++)
//				cout<<s[j].ch;
//			cout<<endl;
//			for(j=0;j<=i;j++)
//				cout<<s[j].sign;
//			cout<<endl;
		}
		if(ans==0)
			cout<<"All customers tanned successfully."<<endl;
		else cout<<ans<<" customer(s) walked away."<<endl;
	}
}



把//去掉的话,会打印出每输入一个字母沙龙里座位情况,1表示有人正在用,2表示在等待,0表示已经走了
哪不对啊
小弟笨死了,看不出来

哪位大哥帮忙看看啦

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator