#include <stdio.h>

void dui(int A[]);
void cuo(void);
void panduan(int p[7][7]);
void shuru();

    int i,j,k;						//i是每个保安的变量,j是存放选择的天数,k是存放每人选择日期的变量
	int p[7][7];				//存放选择的日期的变量,每个人选择的日期变量
	int a ,b ,c ,d ,e ,f ,g ;
	int ax,bx,cx,dx,ex,fx,gx;		//确定选择个数的变量
	int A[7]={0};						//比较
	int t,m,r;	
				//判断的变量
int main()
{
	printf("\n\n-----------------------------\n");
	printf("这是一个保安排班的系统\n作者:荆学辉\n-----------------------------\n\n");
	shuru();
	return 0;
}

void shuru()	//录入每个人的休息日
{	
	printf("请输入各自想选择的休息日\n\n\n"); 
    for(i=0;i<7;i++)  //循环录入  
	{	
		if(i==0)//赵录入的休息日
		{   
		printf("请输入赵选择休息日的天数:\n");
		scanf("%d",&ax);
		printf("请输入赵选择的休息日:\n");
		for(k=0;k<ax;k++)
		scanf("%d",&p[k][i]); 
		}
		
		if(i==1)//钱录入的休息日
		{
		printf("请输入钱选择休息日的天数:\n");
		scanf("%d",&bx);
		printf("请输入钱选择的休息日:\n");
		for(k=0;k<bx;k++)
		scanf("%d",&p[k][i]); 
		} 

		if(i==2)//孙录入的休息日
		{
		printf("请输入孙选择休息日的天数:\n");
		scanf("%d",&cx);
		printf("请输入孙选择的休息日:\n");
		for(k=0;k<cx;k++)
		scanf("%d",&p[k][i]); 
		} 
	
		if(i==3)//李录入的休息日
		{
		printf("请输入李选择休息日的天数:\n");
		scanf("%d",&dx);
		printf("请输入李选择的休息日:\n");
		for(k=0;k<dx;k++)
		scanf("%d",&p[k][i]); 
		} 
	
		if(i==4)//周录入的休息日
		{
		printf("请输入周选择休息日的天数:\n");
		scanf("%d",&ex);
		printf("请输入周选择的休息日:\n");
		for(k=0;k<ex;k++)
		scanf("%d",&p[k][i]); 
		} 
		
		if(i==5)//吴录入的休息日
		{
		printf("请输入吴选择休息日的天数:\n");
		scanf("%d",&fx);
		printf("请输入吴选择的休息日:\n");
		for(k=0;k<fx;k++)
		scanf("%d",&p[k][i]); 
		} 
	
		if(i==6)//陈录入的休息日
		{
		printf("请输入陈选择休息日的天数:\n");
		scanf("%d",&gx);
		printf("请输入陈选择的休息日:\n");
		for(k=0;k<gx;k++)
		scanf("%d",&p[k][i]); 
		} 
	
	}//录入结束
	panduan(p);
}	

void panduan(int p[7][7])			//判断查重
{
	for(a=0;a<ax&&p[a][0]!=0;a++)
	{
		for(b=0;b<bx&&p[b][1]!=0;b++)
		{
			for(c=0;c<cx&&p[c][2]!=0;c++)
			{
				for(d=0;d<dx&&p[d][3]!=0;d++)
				{
					for(e=0;e<ex&&p[e][4]!=0;e++)
					{
						for(f=0;f<fx&&p[f][5]!=0;f++)
						{
							for(g=0;g<gx&&p[g][6]!=0;g++)
							{
								A[0]=p[a][0];
								A[1]=p[b][1];
								A[2]=p[c][2];
								A[3]=p[d][3];
								A[4]=p[e][4];
								A[5]=p[f][5];
								A[6]=p[g][6];

								t=1;

								for(r=0;r<6;r++)
								{
									for(m=r+1;m<7;m++)
									{
										if(A[r]==A[m])
											t=0;
									}	
								}   //比较任意两个数是否相等,相等则t=0,为假;
								if(t==1)	dui(A);
								
								}
							}
						}
					}
				}
			}
		}
						    	if(t==0)	cuo();				                            		
}

void dui(int A[])		//输出
{
	printf("赵的休息日为:%d\n",A[0]);
	printf("钱的休息日为:%d\n",A[1]);
	printf("孙的休息日为:%d\n",A[2]);
	printf("李的休息日为:%d\n",A[3]);
	printf("周的休息日为:%d\n",A[4]);
	printf("吴的休息日为:%d\n",A[5]);
	printf("陈的休息日为:%d\n\n",A[6]);
}

void cuo(void)
{
	printf("对不起,您输入的时间有误,请重新输入!!\n");	
}