https://www.acmicpc.net/problem/1759
#include "bits/stdc++.h"
using namespace std;
//암호 만들기
char arr[15];
int n, m;
void recursive(int start, int cnt1, int cnt2, string str) {
//printf("==%s %d %d\n", str.c_str(), cnt1, cnt2);
if (str.size() == n && cnt1 >= 1 && cnt2 >= 2) {
printf("%s\n", str.c_str());
return;
}
for (int i=start; i<m; i++) {
//str += arr[i];
if (arr[i] == 'a' || arr[i] == 'e' || arr[i] == 'i' || arr[i] == 'o' || arr[i] == 'u') {
cnt1++;
}
else {
cnt2++;
}
recursive(i+1, cnt1, cnt2, str+arr[i]);
if (arr[i] == 'a' || arr[i] == 'e' || arr[i] == 'i' || arr[i] == 'o' || arr[i] == 'u') {
cnt1--;
}
else {
cnt2--;
}
}
}
int main() {
cin >> n >> m;
for (int i=0; i<m; i++) {
cin >> arr[i];
}
sort(arr, arr + m);
recursive(0, 0, 0, "");
}
'정보올림피아드-KOI > BOJ' 카테고리의 다른 글
백준 - 퇴사 (0) | 2022.03.19 |
---|---|
백준 - 부분수열의 합 (0) | 2022.03.19 |
백준 - 로또 (0) | 2022.03.19 |
백준 숫자카드 - 이분탐색 (0) | 2022.03.18 |
백준 1,2,3 더하기 (브루트 포스) (0) | 2022.03.18 |