#include <iostream>
#include <fstream>
#include <cstdlib>
void out(int x, int y, unsigned long int* z, int f, int k);
int main()
{
using namespace std;
unsigned long int a, b;
unsigned long int* c = &b;
int x, y, m, n;
bool i;
bool* j = &i;
cin >> x >> y >> m >> n;
out(x, y, c, m, n);
a = b;
cout << a;
return 0;
}
void out(int x, int y, unsigned long int *z, int f, int k)
{
unsigned long int* a = new unsigned long int[x+1];
for (int i = 0; i <= x; i++)a[i] = 0;
for (int i = 0; i <= y; i++)
{
switch (f)
{
case 0:
{
if (k == i)a[0] = 0;
else a[0] = 1;
break;
}
case 1:
{
if (k == i + 2)a[0] = 0;
else
{
if (k == i - 2)a[0] = 0;
else a[0] = 1;
}
break;
}
case 2:
{
if (k == i + 1)a[0] = 0;
else
{
if (k == i - 1)a[0] = 0;
else a[0] = 1;
}
break;
}
default:a[0] = 1;
}
//a[j] = a[j - 1] + a[j];
for (int j = 1; j <= x; j++)
{
if (f == j && k == i)a[j] = 0;
else
{
if (f == j + 1)
{
if (k == i + 2)a[j] = 0;
else
{
if (k == i - 2)a[j] = 0;
else
{
a[j] = a[j - 1] + a[j];
}
}
}
else
{
if (f == j - 1)
{
if (k == i + 2)a[j] = 0;
else
{
if (k == i - 2)a[j] = 0;
else
{
a[j] = a[j - 1] + a[j];
}
}
}
else
{
if (f == j + 2)
{
if (k == i + 1)a[j] = 0;
else
{
if (k == i - 1)a[j] = 0;
else
{
a[j] = a[j - 1] + a[j];
}
}
}
else
{
if (f == j - 2)
{
if (k == i + 1)a[j] = 0;
else
{
if (k == i - 1)a[j] = 0;
else
{
a[j] = a[j - 1] + a[j];
}
}
}
else
{
a[j] = a[j - 1] + a[j];
}
}
}
}
}
}
}
*z = a[x];
}
有点乱,qwq 有一个错了 求大佬帮忙看看awa