using
System;
class
GFG{
static
int
cntBinStr(
int
N,
int
P,
int
Q)
{
int
[,]zero =
new
int
[N + 1, P];
int
[,]one =
new
int
[N + 1, Q];
zero[1, 1] = one[1, 1] = 1;
for
(
int
i = 2; i <= N; i++)
{
for
(
int
j = 2; j < P; j++)
{
zero[i, j] = zero[i - 1, j - 1];
}
for
(
int
j = 1; j < Q; j++)
{
zero[i, 1] = zero[i, 1] +
one[i - 1, j];
}
for
(
int
j = 2; j < Q; j++)
{
one[i, j] = one[i - 1, j - 1];
}
for
(
int
j = 1; j < P; j++)
{
one[i, 1] = one[i, 1] +
zero[i - 1, j];
}
}
int
res = 0;
for
(
int
i = 1; i < P; i++)
{
res = res + zero[N, i];
}
for
(
int
i = 1; i < Q; i++)
{
res = res + one[N, i];
}
return
res;
}
public
static
void
Main(String[] args)
{
int
N = 5, P = 2, Q = 3;
Console.Write(cntBinStr(N, P, Q));
}
}