#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX_PTS 100
#define MAX_POLYS 100
#define END_INPUT 0
struct Point {
double x, y;
};
double getDistance(struct Point a, struct Point b) {
double distance;
distance
= sqrt((a.
x - b.
x) * (a.
x - b.
x) + (a.
y-b.
y) *(a.
y-b.
y)); return distance;
}
int main(int argc, char *argv[]) {
int npoints, poly_id;
struct Point a, b;
if(scanf("%d %d", &npoints
, &poly_id
)) { int iteration = 0;
scanf("%lf %lf", &a.
x, &a.
y); struct Point initialPoint = a;
double parameter = 0;
for (iteration = 1; iteration < npoints; ++iteration) {
scanf("%lf %lf", &b.
x, &b.
y); parameter += getDistance(a, b);
a = b; // for next iteration
}
parameter += getDistance(a, initialPoint);
printf("Polygon is %d\n", poly_id
); printf("perimeter = %2.2lf m\n", parameter
); } else { printf("\nUnable to read input.\n"); }
return 0;
}
ICAgICNpbmNsdWRlIDxzdGRpby5oPgogICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgogICAgI2luY2x1ZGUgPG1hdGguaD4KICAgIAogICAgI2RlZmluZSBNQVhfUFRTIDEwMAogICAgI2RlZmluZSBNQVhfUE9MWVMgMTAwCiAgICAjZGVmaW5lIEVORF9JTlBVVCAwCiAgICAKICAgIHN0cnVjdCBQb2ludCB7CiAgICAgICAgZG91YmxlIHgsIHk7CiAgICB9OwogICAgCiAgICBkb3VibGUgZ2V0RGlzdGFuY2Uoc3RydWN0IFBvaW50IGEsIHN0cnVjdCBQb2ludCBiKSB7CiAgICAgICAgZG91YmxlIGRpc3RhbmNlOwogICAgICAgIGRpc3RhbmNlID0gc3FydCgoYS54IC0gYi54KSAqIChhLnggLSBiLngpICsgKGEueS1iLnkpICooYS55LWIueSkpOwogICAgICAgIHJldHVybiBkaXN0YW5jZTsKICAgIH0KICAgIAogICAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgewogICAgICAgIGludCBucG9pbnRzLCBwb2x5X2lkOwogICAgICAgIHN0cnVjdCBQb2ludCBhLCBiOwogICAgCiAgICAgICAgaWYoc2NhbmYoIiVkICVkIiwgJm5wb2ludHMsICZwb2x5X2lkKSkgewogICAgICAgICAgICBpbnQgaXRlcmF0aW9uID0gMDsKICAgICAgICAgICAgc2NhbmYoIiVsZiAlbGYiLCAmYS54LCAmYS55KTsKICAgICAgICAgICAgc3RydWN0IFBvaW50IGluaXRpYWxQb2ludCA9IGE7CiAgICAgICAgICAgIGRvdWJsZSBwYXJhbWV0ZXIgPSAwOyAgICAgICAKICAgICAgICAgICAgZm9yIChpdGVyYXRpb24gPSAxOyBpdGVyYXRpb24gPCBucG9pbnRzOyArK2l0ZXJhdGlvbikgewogICAgICAgICAgICAgICAgc2NhbmYoIiVsZiAlbGYiLCAmYi54LCAmYi55KTsKICAgICAgICAgICAgICAgIHBhcmFtZXRlciArPSBnZXREaXN0YW5jZShhLCBiKTsKICAgICAgICAgICAgICAgIGEgPSBiOyAvLyBmb3IgbmV4dCBpdGVyYXRpb24KICAgICAgICAgICAgfQogICAgICAgICAgICBwYXJhbWV0ZXIgKz0gZ2V0RGlzdGFuY2UoYSwgaW5pdGlhbFBvaW50KTsKICAgICAgICAKICAgICAgICAgICAgcHJpbnRmKCJQb2x5Z29uIGlzICVkXG4iLCBwb2x5X2lkKTsKICAgICAgICAgICAgcHJpbnRmKCJwZXJpbWV0ZXIgPSAlMi4ybGYgbVxuIiwgcGFyYW1ldGVyKTsgCiAgICAgICAgfSBlbHNlIHsgcHJpbnRmKCJcblVuYWJsZSB0byByZWFkIGlucHV0LlxuIik7CiAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgICAgICAgfQogICAgCiAgICAgICAgcmV0dXJuIDA7CiAgICB9