题解及证明:http://www.cnblogs.com/StupidBoy/p/5241258.html
#include<cstdio> #include<algorithm> using namespace std; int n,m,a[100100],b[100100]; int main() { //freopen("h.in","r",stdin); scanf("%d%d",&n,&m); for(int i=1;i<=n;++i) scanf("%d",&a[i]); for(int i=1;i<=m;++i) scanf("%d",&b[i]); int ans=0; for(int i=2;i<n;++i) ans=max(min(b[1],min(b[m],a[i])),ans); ans=max(ans,min(a[1],b[m])); ans=max(ans,min(b[1],a[n])); for(int i=2;i<m;++i) ans=max(min(a[1],min(a[n],b[i])),ans); printf("%d ",ans); return 0; }