import java.util.*;
public class 矩形区域的交和并 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader=new Scanner(System.in);
String[] s1=reader.nextLine().split(",");
String[] s2=reader.nextLine().split(",");
int ax1=Integer.valueOf(s1[0]);
int ay1=Integer.valueOf(s1[1]);
int ax2=Integer.valueOf(s1[2]);
int ay2=Integer.valueOf(s1[3]);
int bx1=Integer.valueOf(s2[0]);
int by1=Integer.valueOf(s2[1]);
int bx2=Integer.valueOf(s2[2]);
int by2=Integer.valueOf(s2[3]);
max(ax1,ay1,ax2,ay2,bx1,by1,bx2,by2);
min(ax1,ay1,ax2,ay2,bx1,by1,bx2,by2);
}
public static void max(int ax1,int ay1,int ax2,int ay2,int bx1,int by1,int bx2,int by2){
int cx,cy,cw,ch;
if(ax1<bx1)
cx=ax1;
else
cx=bx1;
if(ay1<by1)
cy=ay1;
else
cy=by1;
if(ax2<bx2)
cw=bx2-cx;
else
cw=ax2-cx;
if(ay2<by2)
ch=by2-cy;
else
ch=ay2-cy;
System.out.println(cx+","+cy+","+cw+","+ch);
}
public static void min(int ax1,int ay1,int ax2,int ay2,int bx1,int by1,int bx2,int by2){
int cx1=(ax2-ax1)/2+ax1;
int cy1=(ay2-ay1)/2+ay1;
int cx2=(bx2-bx1)/2+bx1;
int cy2=(by2-by1)/2+by1;
if(Math.abs(cx2-cx1)>=(ax2-ax1)/2+(bx2-bx1)/2)
{
System.out.println("无解");
return;
}
if(Math.abs(cy2-cy1)>=(ay2-ay1)/2+(by2-by1)/2)
{
System.out.println("无解");
return;
}
int cx,cy,cw,ch;
if(ax1>bx1)
cx=ax1;
else
cx=bx1;
if(ay1>by1)
cy=ay1;
else
cy=by1;
if(ax2>bx2)
cw=bx2-cx;
else
cw=ax2-cx;
if(ay2>by2)
ch=by2-cy;
else
ch=ay2-cy;
System.out.println(cx+","+cy+","+cw+","+ch);
}
}
注:关键点是找出数学关系。当并的时候,找a1、b1点中x最小的,y最小的,a2、b2点中y最大的 x最大的。当交的时候,我们先找出两个矩形的中心点,计算中心点的相对的x和y值,如果x>aw/2+bw/2或者y>ah/2+bh/2的话,则不存在并集,否则存在。找a1、b1点中x最大的,y最大的,为交集的左下脚点,找a2、b2点中x最小的,y最小的,为交集的右上脚点