Logo
(追記) (追記ここまで)

28077번 - 사탕 팔찌 스페셜 저지

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB99201827.692%

문제

안즈는 사탕을 정말 좋아한다.

안즈는 매일 사탕을 먹다 보니 이제는 질리기 시작했고, 사탕을 먹는 새로운 방법을 찾아보고자 한다. 그 방법은 여러 종류의 사탕을 일렬로 늘어놓은 다음, 한 번에 먹는 것이다! 이런 식으로 사탕 묶음을 만들어 먹으면 적은 종류의 사탕으로도 다양한 맛을 느낄 수 있게 된다.

안즈는 \(N\)종류의 사탕중에 \(K\)개의 서로 다른 사탕을 골라 사탕 묶음을 만들어 먹기로 했다. 예를 들어, 딸기, 오렌지, 포도 3종류의 사탕 중에 2개의 서로 다른 사탕을 골라 사탕 묶음을 만들기로 했다면, 안즈는 (딸기, 오렌지), (딸기, 포도), (오렌지, 딸기), (오렌지, 포도), (포도, 딸기), (포도, 오렌지)의 6가지 새로운 맛을 경험할 수 있다.

안즈는 이러한 방식으로 만들어진 사탕 묶음들을 살펴보며 만족스러워했다. 그러던 중, 모든 사탕 묶음을 한 번씩 사용하여 원형의 사탕 팔찌를 만들면 더 귀엽겠다는 생각이 들었다.

안즈는 사탕 팔찌의 이웃하는 두 사탕 묶음에 대해, 이전 사탕 묶음의 뒤쪽 \(K-1\)개의 사탕 배열과 다음 사탕 묶음의 앞쪽 \(K-1\)개의 사탕 배열이 같도록 사탕을 꿰기로 했다.

예를 들어, (딸기, 오렌지) 뒤에는 (오렌지, 딸기) 또는 (오렌지, 포도)가 올 수 있지만, (포도, 딸기)는 올 수 없다.

또, (딸기, 오렌지, 포도) 뒤에는 (오렌지, 포도, 딸기)가 올 수 있지만, (포도, 딸기, 오렌지) 와 (오렌지, 딸기, 포도)는 올 수 없다.

그러나 안즈는 이러한 조건을 만족하는 사탕 팔찌를 만들 수 있는지 모른다. 안즈는 이 문제를 풀기에는 너무 귀찮았기 때문에, 여러분에게 해결을 부탁했다.

입력

첫째 줄에 \(N\)과 \(K\)가 공백으로 구분되어 주어진다.

출력

사탕 팔찌를 완성할 수 있다면, 첫째 줄에 "YES"를 출력하고, 둘째 줄에 사탕 팔찌를 구성하는 사탕 묶음을 차례대로 공백으로 구분하여 출력한다. 가능한 답이 여러 개라면, 그 중 아무거나 하나를 출력한다.

사탕 팔찌는 만들 수 있는 모든 사탕 묶음을 한 번씩 포함해야 하며, 지문에서 설명한 내용을 만족해야 한다. 사탕 팔찌는 원형이므로, 마지막으로 출력한 사탕 묶음의 다음 사탕 묶음은 맨 처음에 출력한 사탕 묶음이다.

각 사탕은 알파벳 대문자의 첫 \(N\)개를 사용하여 나타내며, 하나의 사탕 묶음은 그 사탕 묶음을 이루는 사탕들을 차례대로 늘어놓은 하나의 문자열로 나타낸다.

사탕 팔찌를 완성할 수 없다면, 첫째 줄에 "NO"를 출력한다.

제한

  • 3ドル ≤ N ≤ 9$
  • 2ドル ≤ K ≤ N$

예제 입력 1

3 2

예제 출력 1

YES
AB BC CA AC CB BA

예제 입력 2

4 3

예제 출력 2

YES
ABC BCA CAB ABD BDA DAC ACB CBA BAC ACD CDB DBA BAD ADC DCB CBD BDC DCA CAD ADB DBC BCD CDA DAB

예제 입력 3

3 3

예제 출력 3

NO

힌트

출처

University > 인하대학교 > 2023 인하대학교 프로그래밍 경진대회 (IUPC) > Contest D번

University > 인하대학교 > 2023 인하대학교 프로그래밍 경진대회 (IUPC) > Open Contest D번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /