这个题目,其实挺无聊的
package info.frady.luogu;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class P1002 {
public static void main(String[] args) throws Exception{
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=new StringTokenizer(reader.readLine());
int EX=Integer.parseInt(st.nextToken())+2;
int EY=Integer.parseInt(st.nextToken())+2;//n m 是终点坐标
long[][] arr=new long[EX][EY];
arr[1][0]=1;
int MX=Integer.parseInt(st.nextToken())+1;
int MY=Integer.parseInt(st.nextToken())+1;//这个是马的坐标
arr[MX][MY]=-1;
if(MX-2>=1 && MY+1<=EY){
arr[MX-2][MY+1]=-1;
}
if(MX-1>=1 && MY+2<=EY){
arr[MX-1][MY+2]=-1;
}
if(MX+1<=EX && MY+2<=EY){
arr[MX+1][MY+2]=-1;
}
if(MX+2<=EX && MY+1<=EY){
arr[MX+2][MY+1]=-1;
}
if(MX+2<=EX && MY-1>=1){
arr[MX+2][MY-1]=-1;
}
if(MX+1<=EX && MY-2>=1){
arr[MX+1][MY-2]=-1;
}
if(MX-1>=1 && MY-2>=1){
arr[MX-1][MY-2]=-1;
}
if(MX-2>=1 && MY-1>=1){
arr[MX-2][MY-1]=-1;
}
/*for (int i = 0; i <arr.length ; i++) {
for (int j = 0; j <arr[i].length ; j++) {
System.out.print(arr[i][j] +" ");
}
System.out.println("");
}
System.out.println("");*/
for (int i = 1; i <arr.length ; i++) {
for (int j = 1; j <arr[i].length ; j++) {
if(arr[i][j]!=0){
continue;
}else{
if(arr[i-1][j]==-1){
arr[i][j]=arr[i][j-1];
}else if(arr[i][j-1]==-1){
arr[i][j]=arr[i-1][j];
}else{
arr[i][j]=arr[i-1][j]+arr[i][j-1];
}
}
}
}
/*for (int i = 0; i <arr.length ; i++) {
for (int j = 0; j <arr[i].length ; j++) {
System.out.print(arr[i][j] +" ");
}
System.out.println("");
}*/
System.out.println(arr[arr.length-1][arr[0].length-1]);
reader.close();
}
}