using
System;
class
GFG {
static
string
KthString(
int
A,
int
B,
long
K,
int
[, ] dp)
{
if
(A == 0) {
string
ans =
""
;
for
(
int
i = 0; i < B; i++) {
ans +=
'1'
;
}
return
ans;
}
if
(B == 0) {
string
ans =
""
;
for
(
int
i = 0; i < A; i++) {
ans +=
'0'
;
}
return
ans;
}
if
(K <= dp[A - 1, B]) {
return
"0"
+ KthString(A - 1, B, K, dp);
}
else
{
return
"1"
+ KthString(A, B - 1, K - dp[A - 1, B], dp);
}
}
static
int
KthStringUtil(
int
A,
int
B,
int
K)
{
int
[, ] dp =
new
int
[A + 1, B + 1];
dp[0, 0] = 1;
for
(
int
i = 0; i <= A; ++i) {
for
(
int
j = 0; j <= B; ++j) {
if
(i > 0) {
dp[i, j] += dp[i - 1, j];
}
if
(j > 0) {
dp[i, j] += dp[i, j - 1];
}
}
}
Console.WriteLine(KthString(A, B, K, dp));
return
0;
}
public
static
void
Main(
string
[] args)
{
int
A = 3, B = 3, K = 7;
KthStringUtil(A, B, K);
}
}