import java.util.Scanner;
public class Main {
public static int[][] combinationArr = new int[201][201];
public static void main(String[] args) {
Main main = new Main();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < combinationArr.length; i++) {
combinationArr[i][0] = 1;
combinationArr[i][i] = 1;
for (int j = 1; j <= i; j++) {
combinationArr[i][j] = combinationArr[i - 1][j - 1] + combinationArr[i - 1][j];
}
}
int cases = sc.nextInt();
while (cases-- > 0) {
int n = sc.nextInt();
int m = sc.nextInt();
int index = sc.nextInt();
main.searchAndPrint(n, m, index);
System.out.println();
}
}
public void searchAndPrint(int n, int m, int index) {
if (index <= 1) {
printN(n);
printM(m);
} else {
int tmpN = 1;
int tmpM = m - 1;
int tmpIndex = 1;
while (tmpIndex + combinationArr[tmpN + tmpM][tmpN] < index) {
tmpIndex += combinationArr[tmpN + tmpM][tmpN];
tmpN++;
}
printN(n - tmpN);
printM(m - tmpM);
searchAndPrint(tmpN, tmpM, index - tmpIndex);
}
}
public void printN(int num) {
char a = 45;
while (num > 0) {
System.out.print(a);
num--;
}
}
public void printM(int num) {
char a = 111;
while (num > 0) {
System.out.print(a);
num--;
}
}
}
JungSol2
아무리 생각해도 잘못된 테스트케이스를 모르겠어요 ㅠㅠ
도움 부탁드립니다!!
10년 전