#include <bits/stdc++.h> //데스락 조합
using namespace std;
int arr[10]={10000,2,10000,10000,2,3,2,2,10000,10000},Arr[7]={10000,2,3,2,2,10000,10000},n[5];
int A[150][3],B[150][3],C[150][3],D[150][3];
int res[5][5];
int re[5][5];
vector <string> v[10][10];
char a[150][150],b[150][150],c[150][150],d[150][150];
void dfs(int p, int q, int v)
{
int i;
if(q==5)
{
for(i=1;i<=9;i++)
{
if(arr[i]>0 && arr[i]<1000)
break;
}
if(i==10)
{
for(i=1;i<=6;i++)
{
if(Arr[i]>0 && Arr[i]<1000)
break;
}
if(i==7)
{
printf("\n==============================\n\n");
for(i=1;i<=4;i++)
for(int j=1;j<=3;j++)
re[i][j]=res[i][j];
printf("A님 : ");
for(i=1;i<=3;i++)
printf("%s ",a[re[1][i]]);
printf("\n");
printf("B님 : ");
for(i=1;i<=3;i++)
printf("%s ",b[re[2][i]]);
printf("\n");
printf("C님 : ");
for(i=1;i<=3;i++)
printf("%s ",c[re[3][i]]);
printf("\n");
printf("D님 : ");
for(i=1;i<=3;i++)
printf("%s ",d[re[4][i]]);
exit(0);
}
}
return;
}
if(p==4)
dfs(1,q+1,1);
if(q==1)
{
for(i=v;i<=n[1];i++)
{
if(arr[A[i][1]]>0 && Arr[A[i][2]]>0)
{
res[1][p]=i;
arr[A[i][1]]--;
Arr[A[i][2]]--;
dfs(p+1,q,i+1);
res[1][p]=0;
arr[A[i][1]]++;
Arr[A[i][2]]++;
}
}
}
if(q==2)
{
for(i=v;i<=n[2];i++)
{
if(arr[B[i][1]]>0 && Arr[B[i][2]]>0)
{
res[2][p]=i;
arr[B[i][1]]--;
Arr[B[i][2]]--;
dfs(p+1,q,i+1);
res[2][p]=0;
arr[B[i][1]]++;
Arr[B[i][2]]++;
}
}
}
if(q==3)
{
for(i=v;i<=n[3];i++)
{
if(arr[C[i][1]]>0 && Arr[C[i][2]]>0)
{
res[3][p]=i;
arr[C[i][1]]--;
Arr[C[i][2]]--;
dfs(p+1,q,i+1);
res[3][p]=0;
arr[C[i][1]]++;
Arr[C[i][2]]++;
}
}
}
if(q==4)
{
for(i=v;i<=n[4];i++)
{
if(arr[D[i][1]]>0 && Arr[D[i][2]]>0)
{
res[4][p]=i;
arr[D[i][1]]--;
Arr[D[i][2]]--;
dfs(p+1,q,i+1);
res[4][p]=0;
arr[D[i][1]]++;
Arr[D[i][2]]++;
}
}
}
}
int main()
{
int i;
v[1][1].push_back("제트드래곤");
v[1][1].push_back("타이거드래곤");
v[1][1].push_back("램곤");
v[1][1].push_back("헝그리드래곤");
v[1][1].push_back("머드드래곤");
v[1][1].push_back("오랜지리프드래곤");
v[1][1].push_back("지진");
v[1][1].push_back("포이즌리버");
v[1][1].push_back("포폰");
v[1][2].push_back("파워드래곤");
v[1][2].push_back("데빌곤");
v[1][2].push_back("배가본드드래곤");
v[1][2].push_back("레오벡터");
v[1][3].push_back("바위드래곤");
v[1][3].push_back("지하땅굴드래곤");
v[1][3].push_back("에그드래곤");
v[1][3].push_back("리프드래곤");
v[1][3].push_back("스마트드래곤");
v[1][3].push_back("타투");
v[1][3].push_back("팀버드래곤");
v[1][3].push_back("플라워드래곤");
v[1][4].push_back("스파인");
v[1][4].push_back("스콜피온드래곤");
v[1][4].push_back("다로스");
v[1][5].push_back("히드라곤");
v[1][5].push_back("콜로서스");
v[1][5].push_back("레이어스");
v[1][5].push_back("리베티");
v[1][6].push_back("골든혼");
v[1][6].push_back("칸타카");
v[1][6].push_back("머스타드해머");
v[1][6].push_back("아스타테");
v[1][6].push_back("파이썬");
v[1][6].push_back("헤라클레스곤");
v[2][1].push_back("네시");
v[2][1].push_back("스왐프드래곤");
v[2][1].push_back("툰드라드래곤");
v[2][2].push_back("빙하고룡");
v[2][2].push_back("페어리드래곤");
v[2][2].push_back("샤크곤");
v[2][2].push_back("메갈로돈");
v[2][2].push_back("블리자드");
v[2][2].push_back("베른하르트");
v[2][2].push_back("루미네스");
v[2][3].push_back("프로그드래곤");
v[2][3].push_back("현무드래곤");
v[2][3].push_back("루피아드래곤");
v[2][3].push_back("스터드드래곤");
v[2][3].push_back("위드미");
v[2][3].push_back("폴투누스");
v[2][4].push_back("미니드래곤");
v[2][4].push_back("아쿠아드래곤");
v[2][4].push_back("아이스드레이크");
v[2][4].push_back("세크레타");
v[2][4].push_back("트로페우스");
v[2][4].push_back("마소티스");
v[2][5].push_back("블루라이트닝");
v[2][5].push_back("바이올렛드래곤");
v[2][5].push_back("해마곤");
v[2][5].push_back("베놈드래곤");
v[2][5].push_back("브리트라");
v[2][5].push_back("프로즌");
v[2][6].push_back("테일드래곤");
v[2][6].push_back("수룡");
v[2][6].push_back("슬라임드래곤");
v[2][6].push_back("퍼플립스드래곤");
v[2][6].push_back("마리노드래곤");
v[2][6].push_back("나트론");
v[2][6].push_back("레굴루스");
v[2][6].push_back("크로마레굴루스");
v[3][1].push_back("붐버드래곤");
v[3][1].push_back("포포모");
v[3][1].push_back("염화룡");
v[3][2].push_back("파이어드래곤");
v[3][2].push_back("피닉스");
v[3][2].push_back("레드와이번");
v[3][2].push_back("말소자드래곤");
v[3][2].push_back("수라드래곤");
v[3][2].push_back("엔투라스");
v[3][2].push_back("베틀드래곤");
v[3][2].push_back("번네스");
v[3][2].push_back("데모니오");
v[3][3].push_back("스파이크드래곤");
v[3][3].push_back("너티빌런");
v[3][3].push_back("와일드드래곤");
v[3][3].push_back("루가르드래곤");
v[3][3].push_back("토트");
v[3][3].push_back("아이언드래곤");
v[3][4].push_back("헬드래곤");
v[3][4].push_back("인섹트드래곤");
v[3][4].push_back("샌드드래곤");
v[3][4].push_back("볼케이노");
v[3][4].push_back("가루다");
v[3][4].push_back("마룡");
v[3][4].push_back("이그니스");
v[3][5].push_back("번개고룡");
v[3][5].push_back("라바드래곤");
v[3][5].push_back("본헤드");
v[3][5].push_back("플레임드래곤");
v[3][5].push_back("레드불드래곤");
v[3][5].push_back("므네이아");
v[3][5].push_back("자룡");
v[3][6].push_back("금오드래곤");
v[3][6].push_back("푸투룸");
v[3][6].push_back("이그나");
v[3][6].push_back("화귀드래곤");
v[3][6].push_back("타나토스");
v[4][1].push_back("윈드드래곤");
v[4][1].push_back("식스레그혼드래곤");
v[4][1].push_back("뮤직드래곤");
v[4][1].push_back("가디언");
v[4][1].push_back("토템드래곤");
v[4][1].push_back("클라우드드래곤");
v[4][1].push_back("핑크벨드래곤");
v[4][1].push_back("엠파이어");
v[4][1].push_back("혼");
v[4][2].push_back("청룡");
v[4][2].push_back("페이퍼드래곤");
v[4][2].push_back("스트라이커");
v[4][2].push_back("아스티");
v[4][2].push_back("아라카");
v[4][3].push_back("프로스티");
v[4][3].push_back("해태드래곤");
v[4][3].push_back("스틸윙");
v[4][3].push_back("키갈");
v[4][4].push_back("에일리언드래곤");
v[4][4].push_back("윙스드래곤");
v[4][4].push_back("메탈마그넷드래곤");
v[4][4].push_back("i곤");
v[4][4].push_back("피스드래곤");
v[4][4].push_back("그레이탄");
v[4][4].push_back("레인보우배트곤");
v[4][4].push_back("에트왈드래곤");
v[4][4].push_back("오로");
v[4][5].push_back("제트드래곤");
v[4][5].push_back("스왈로우");
v[4][5].push_back("카오스");
v[4][5].push_back("제피로스");
v[4][5].push_back("보레아스");
v[4][6].push_back("레이디드래곤");
v[4][6].push_back("타이푼드래곤");
v[4][6].push_back("태엽드래곤");
v[4][6].push_back("센투라");
v[4][6].push_back("티르");
v[5][1].push_back("카멜레용");
v[5][1].push_back("레인보우");
v[5][1].push_back("샴드래곤");
v[5][1].push_back("삐에로드래곤");
v[5][1].push_back("시타엘");
v[5][1].push_back("엔젤주니어");
v[5][2].push_back("큐피트용");
v[5][2].push_back("모리카드래곤");
v[5][2].push_back("오르도");
v[5][2].push_back("솔라");
v[5][2].push_back("카루라");
v[5][2].push_back("아톤");
v[5][2].push_back("스워드");
v[5][2].push_back("바르그");
v[5][2].push_back("아르고드래곤");
v[5][3].push_back("나이트드래곤");
v[5][3].push_back("순둥곤");
v[5][3].push_back("사나래");
v[5][3].push_back("로루스");
v[5][3].push_back("헤이즈");
v[5][3].push_back("개틀링곤");
v[5][3].push_back("크리마용");
v[5][4].push_back("고대주니어");
v[5][4].push_back("파라오곤");
v[5][4].push_back("바르라아");
v[5][4].push_back("아르테미스드래곤");
v[5][4].push_back("화이트썬더드래곤");
v[5][4].push_back("탈릿사");
v[5][4].push_back("아만타");
v[5][4].push_back("샤흐");
v[5][5].push_back("라이곤");
v[5][5].push_back("캥거래빗드래곤");
v[5][5].push_back("네온드래곤");
v[5][5].push_back("슈팅스타");
v[5][5].push_back("깨비곤");
v[5][5].push_back("미나스드래곤");
v[5][5].push_back("스파이시");
v[5][6].push_back("고대신룡");
v[5][6].push_back("엔젤드래곤");
v[5][6].push_back("에메랄드드래곤");
v[5][6].push_back("치킨헤드드래곤");
v[5][6].push_back("골드드래곤");
v[5][6].push_back("백룡");
v[5][6].push_back("오로라드래곤");
v[5][6].push_back("아실리");
v[5][6].push_back("스타에이스");
v[5][6].push_back("테디드래곤");
v[5][6].push_back("베르나");
v[5][6].push_back("라파엘");
v[6][1].push_back("프랑켄슈타곤");
v[6][1].push_back("블랙티어드래곤");
v[6][1].push_back("블랙찡또");
v[6][1].push_back("문라이트");
v[6][1].push_back("말로단");
v[6][2].push_back("블레이드드래곤");
v[6][2].push_back("서펀트드래곤");
v[6][2].push_back("G네드래곤");
v[6][2].push_back("유니드래곤");
v[6][2].push_back("다크프로스티");
v[6][2].push_back("쉐도우드래곤");
v[6][2].push_back("닌자드래곤");
v[6][2].push_back("블랙퀸");
v[6][2].push_back("스플렌더드래곤");
v[6][2].push_back("타임머신");
v[6][2].push_back("아자크");
v[6][3].push_back("베네지");
v[6][3].push_back("투탕카");
v[6][3].push_back("블랙아머드래곤");
v[6][3].push_back("쿠로이드래곤");
v[6][3].push_back("카르나");
v[6][3].push_back("쿠베라");
v[6][4].push_back("뱃도치드래곤");
v[6][4].push_back("코브라곤");
v[6][4].push_back("마르바스");
v[6][4].push_back("스케어");
v[6][4].push_back("드레곤슬레이어");
v[6][4].push_back("마카라");
v[6][4].push_back("리치몬드");
v[6][4].push_back("크로마리치몬드");
v[6][4].push_back("데몽과가고일");
v[6][5].push_back("흑룡");
v[6][5].push_back("메탈드래곤");
v[6][5].push_back("미이라곤");
v[6][5].push_back("다크닉스");
v[6][5].push_back("히에나곤");
v[6][5].push_back("크레센트");
v[6][5].push_back("윗치드래곤");
v[6][5].push_back("캣츠곤");
v[6][5].push_back("타르타로스");
v[6][5].push_back("다크폴");
v[6][5].push_back("스켈레곤");
v[6][5].push_back("바알");
v[6][5].push_back("시그마드래곤");
v[6][6].push_back("드라고노이드");
v[6][6].push_back("유니버스");
v[6][6].push_back("베히모스");
v[6][6].push_back("다크나이트");
v[7][1].push_back("베리스");
v[7][2].push_back("합라");
v[7][2].push_back("셀마사");
v[7][3].push_back("엘리고스");
v[7][3].push_back("라스");
v[7][4].push_back("킨더드래곤");
v[7][4].push_back("암두시아스");
v[7][5].push_back("할리벨");
v[7][5].push_back("타아비레");
v[7][5].push_back("보상이용");
v[7][6].push_back("미미르");
v[7][6].push_back("네비아");
v[8][1].push_back("이클립스");
v[8][2].push_back("카라선");
v[8][2].push_back("렉스톤");
v[8][2].push_back("틸키");
v[8][2].push_back("하리카");
v[8][3].push_back("데스락");
v[8][3].push_back("세에레");
v[8][4].push_back("베팔");
v[8][4].push_back("포메쿨");
v[8][4].push_back("프라이드");
v[8][5].push_back("렉몰리버스");
v[8][5].push_back("네뷸라");
v[8][6].push_back("발라크");
v[9][1].push_back("단탈리온");
v[9][1].push_back("네무스");
v[9][2].push_back("디멘션드래곤");
v[9][3].push_back("벨레드");
v[9][3].push_back("미스핏");
v[9][4].push_back("자간");
v[9][5].push_back("움브라");
v[9][5].push_back("루드오어");
v[9][6].push_back("애니마라");
v[9][6].push_back("롱기누스");
v[9][6].push_back("마스테마");
printf("플레이어별 강림 수와 강림 이름을 입력해주세요.\n");
printf("강림이름은 공백제외 풀네임으로 입력해주세요.\n");
printf("예시\n");
printf("5\n아르고드래곤\n루드오어\nG네드래곤\n헤라클레스곤\n파이어드래곤\n");
printf("\n==============================\n\n");
printf("A님의 강림수를 입력해주세요.\n");
scanf("%d",&n[1]);
printf("강림들을 입력해주세요.\n");
int j=1,r=1,t=0;
int check;
for(i=1;i<=n[1];i++)
{
scanf("%s",a[i]);
check=0;
for(j=1;j<=9;j++)
{
for(r=1;r<=6;r++)
{
for(t=0;t<v[j][r].size();t++)
{
if(strcmp(v[j][r][t].c_str(),a[i])==0)
{
A[i][1]=j;
A[i][2]=r;
check=1;
break;
}
}
if(check)
break;
}
if(check)
break;
}
}
printf("\n==============================\n\n");
printf("B님의 강림수를 입력해주세요.\n");
scanf("%d",&n[2]);
printf("강림들을 입력해주세요.\nEx)아르고 빛 공격\n");
for(i=1;i<=n[2];i++)
{
scanf("%s",b[i]);
check=0;
for(j=1;j<=9;j++)
{
for(r=1;r<=6;r++)
{
for(t=0;t<v[j][r].size();t++)
{
if(strcmp(v[j][r][t].c_str(),b[i])==0)
{
B[i][1]=j;
B[i][2]=r;
check=1;
break;
}
}
if(check)
break;
}
if(check)
break;
}
}
printf("\n==============================\n\n");
printf("C님의 강림수를 입력해주세요.\n");
scanf("%d",&n[3]);
printf("강림들을 입력해주세요.\nEx)아르고 빛 공격\n");
for(i=1;i<=n[3];i++)
{
scanf("%s",c[i]);
check=0;
for(j=1;j<=9;j++)
{
for(r=1;r<=6;r++)
{
for(t=0;t<v[j][r].size();t++)
{
if(strcmp(v[j][r][t].c_str(),c[i])==0)
{
C[i][1]=j;
C[i][2]=r;
check=1;
break;
}
}
if(check)
break;
}
if(check)
break;
}
}
printf("\n==============================\n\n");
printf("D님의 강림수를 입력해주세요.\n");
scanf("%d",&n[4]);
printf("강림들을 입력해주세요.\nEx)아르고 빛 공격\n");
for(i=1;i<=n[4];i++)
{
scanf("%s",d[i]);
check=0;
for(j=1;j<=9;j++)
{
for(r=1;r<=6;r++)
{
for(t=0;t<v[j][r].size();t++)
{
if(strcmp(v[j][r][t].c_str(),d[i])==0)
{
D[i][1]=j;
D[i][2]=r;
check=1;
break;
}
}
if(check)
break;
}
if(check)
break;
}
}
dfs(1,1,1);
}