public class Rect {
    int x1, y1, x2, y2;

    public Rect() {
        this(0,0,0,0);
    }

    public Rect(int width, int height) {
        this(0,0,width,height);
    }

    public Rect(int x1, int y1, int x2, int y2) {
        this.x1 = x1;
        this.y1 = y1;
        this.x2 = x2;
        this.y2 = y2;
    }

    public void move(int deltax, int deltay) {
        x1+=deltax; 
        x2+=deltax;
        y1+=deltay; 
        y2+=deltay;
    }

    public int getxCenter() {
        return x1+(x2-x1)/2;
    }

    public int getyCenter() {
        return y1+(y2-y1)/2;
    }

    public boolean isInside(int x, int y) {
        return((x>=x1)&&(x<=x2) && (y>=y1)&&(y<=y2));
    }   

    public Rect union(Rect r) {
        return new Rect(
            (x1r.x2) ? x2:r.x2, (y2>r.y2) ? y2:r.y2);
    }
    
    public Rect intersection(Rect r) {
        Rect result  = new Rect(
            (x1>r.x1) ? x1:r.x1, (y1>r.y1) ? y1:r.y1,
            (x2 result.x2) { 
            result.x1 = result.x2 = 0; 
        }
        if(result.y1 > result.y2) { 
            result.y1 = result.y2 = 0; 
        }
        return result;
    }

    public String toString() {
        return "["+x1+","+y1+";"+x2+","+y2+"]";
    }
}