解析:首先使得矩阵的n<=m,然后将矩阵对称处理,使得(x,y)的位置位于右下。这样一来只需要判断(x-1,y)的处理以及完后的对应方案即可。
[code]:
include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
int n,m,x,y;
int main(){
int i,j,cas,u,v;
while(~scanf("%d%d%d%d",&n,&m,&x,&y)){
if(n > m){
swap(n,m);swap(x,y);
}
if(x <= (n+1)/2) x = n+1-x;
if(y <= (m+1)/2) y = m+1-y;
int tmp = min(m+1-y,x-1);
int o1,o2;
if(n&1){
printf("%d\n",max(tmp,n/2+1-(n==m&&x==y&&x==n/2+1)));
}else printf("%d\n",max(tmp,n/2));
}
return 0;
}