#include <iostream>
using namespace std;
int main()
{
enum weekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
int a,b,c,d,e,f,g,i;
char ch='A';
int day[7];
f=Thursday;
for(a=Sunday;a<=Saturday;a++)
if(a!=f)
for(b=Sunday;b<=Saturday;b++)
if(b!=f&&b!=a&&f>b)
for(c=Sunday;c<=Saturday;c++)
if(c!=f&&c!=a&&c!=b&&(c+1)%7==a&&f<c)
for(d=Sunday;d<=Saturday;d++)
if(d!=f&&d!=a&&d!=b&&d!=c)
for(e=Sunday;e<=Saturday;e++)
if(e!=f&&e!=a&&e!=b&&e!=c&&(e+2)%7==d&&e!=d)
for(g=Sunday;g<=Saturday;g++)
if(g!=f&&g!=a&&g!=b&&g!=c&&g!=d&&g!=e&&(g-3)%7==b)
for(i=0;i<7;i++)
{ day[0]=a;day[1]=b;day[2]=c;
day[3]=d;day[4]=e;day[5]=f;day[6]=g;
cout<<"Doctor "<<(char)(ch+i)<<" is on duty ";
switch((enum weekday)(day[i]))
{
case Sunday:cout<<"Sunday."<<endl;break;
case Monday:cout<<"Monday."<<endl;break;
case Tuesday:cout<<"Tuesday."<<endl;break;
case Wednesday:cout<<"Wednesday."<<endl;break;
case Thursday:cout<<"Thursday."<<endl;break;
case Friday:cout<<"Friday."<<endl;break;
case Saturday:cout<<"Saturday."<<endl;
}
}
return 0;
}
Description
医院内科有A,B,C,D,E,F,G,H共七位医生,每人在一周内要值一次夜班,排班的要求是:
(1) A医生值班日比C医生晚1天
(2) D医生值班日比E医生晚2天
(3) B医生值班日比G医生早3天
(4) F医生的值班日在B医生和C医生的值班日之间,且是星期四
请编写程序,输出每位医生的值班日。值班日以Sunday, Monday ,Tuesday, Wednesday, Thurday, Friday, Saturday分别表示星期日到星期六。
Input
无
Output
每位医生的值班日
Sample Input
Sample Output
Doctor A is on duty Sunday.
Doctor B is on duty Tuesday.
Doctor C is on duty Saturday.
Doctor D is on duty Wednesday.
Doctor E is on duty Monday.
Doctor F is on duty Thursday.
Doctor G is on duty Friday.