#include <stdio.h>
#include <math.h>
typedef struct {
    double x;
    double y;
} Point;
 
Point scan_point(void);
double area_of(Point p1, Point p2);
double circumference_of(Point p1, Point p2);
 
int main(void) {
	Point p1, p2;
	printf("左上隅と右下隅の座標を入力してください。\n"); 	p1 = scan_point();
	p2 = scan_point();
	printf("座標1 : (%.2f, %.2f)\n", p1.
x, p1.
y);     printf("座標2 : (%.2f, %.2f)\n", p2.
x, p2.
y);     printf("面積 : %.2f\n", area_of
(p1
, p2
));     printf("周囲の長さ : %.2f\n", circumference_of
(p1
, p2
));  
 
	return 0;
}
 
 
Point scan_point(void) {
	Point temp;
    scanf("%lf %lf", &temp.
x, &temp.
y);     return temp;
}
 
double area_of(Point p1, Point p2){
	double yoko 
= fabs(p1.
x - p2.
x); 	double tate 
= fabs(p1.
y - p2.
y); 	return yoko * tate;
}
 
double circumference_of(Point p1, Point p2) {
double yoko 
= fabs(p1.
x - p2.
x); double tate 
= fabs(p1.
y - p2.
y); return 2.0 * (tate + yoko);
}
				I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CnR5cGVkZWYgc3RydWN0IHsKICAgIGRvdWJsZSB4OwogICAgZG91YmxlIHk7Cn0gUG9pbnQ7CgpQb2ludCBzY2FuX3BvaW50KHZvaWQpOwpkb3VibGUgYXJlYV9vZihQb2ludCBwMSwgUG9pbnQgcDIpOwpkb3VibGUgY2lyY3VtZmVyZW5jZV9vZihQb2ludCBwMSwgUG9pbnQgcDIpOwoKaW50IG1haW4odm9pZCkgewoJUG9pbnQgcDEsIHAyOwoJcHJpbnRmKCLlt6bkuIrpmoXjgajlj7PkuIvpmoXjga7luqfmqJnjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIJcbiIpOwoJcDEgPSBzY2FuX3BvaW50KCk7CglwMiA9IHNjYW5fcG9pbnQoKTsKCXByaW50Zigi5bqn5qiZMSA6ICglLjJmLCAlLjJmKVxuIiwgcDEueCwgcDEueSk7CiAgICBwcmludGYoIuW6p+aomTIgOiAoJS4yZiwgJS4yZilcbiIsIHAyLngsIHAyLnkpOwogICAgcHJpbnRmKCLpnaLnqY0gOiAlLjJmXG4iLCBhcmVhX29mKHAxLCBwMikpOwogICAgcHJpbnRmKCLlkajlm7Ljga7plbfjgZUgOiAlLjJmXG4iLCBjaXJjdW1mZXJlbmNlX29mKHAxLCBwMikpOwoKCQoJcmV0dXJuIDA7Cn0KCgpQb2ludCBzY2FuX3BvaW50KHZvaWQpIHsKCVBvaW50IHRlbXA7CiAgICBzY2FuZigiJWxmICVsZiIsICZ0ZW1wLngsICZ0ZW1wLnkpOwogICAgcmV0dXJuIHRlbXA7Cn0KCmRvdWJsZSBhcmVhX29mKFBvaW50IHAxLCBQb2ludCBwMil7Cglkb3VibGUgeW9rbyA9IGZhYnMocDEueCAtIHAyLngpOwoJZG91YmxlIHRhdGUgPSBmYWJzKHAxLnkgLSBwMi55KTsKCXJldHVybiB5b2tvICogdGF0ZTsKfQoKZG91YmxlIGNpcmN1bWZlcmVuY2Vfb2YoUG9pbnQgcDEsIFBvaW50IHAyKSB7CmRvdWJsZSB5b2tvID0gZmFicyhwMS54IC0gcDIueCk7CmRvdWJsZSB0YXRlID0gZmFicyhwMS55IC0gcDIueSk7CnJldHVybiAyLjAgKiAodGF0ZSArIHlva28pOwp9