#include #include struct moje{ int x,y; }; int porovnejx(const void *x_1,const void *x_2 ) { moje *x1,*x2; x1 = (moje *) x_1; x2 = (moje *) x_2; if( x1->x < x2->x) return -1; if((x1->x == x2->x) && (x1->y < x2->y)) return -1; if((x1->x == x2->x) && (x1->y > x2->y)) return 1; if((x1->x == x2->x) && (x1->y == x2->y)) return 0; if(x1->x > x2->x) return 1; }; int porovnejy(const void *x_1,const void *x_2 ) { moje *x1,*x2; x1 = (moje *) x_1; x2 = (moje *) x_2; if( x1->y < x2->y) return -1; if((x1->y == x2->y) && (x1->x < x2->x)) return -1; if((x1->y == x2->y) && (x1->x > x2->x)) return 1; if((x1->y == x2->y) && (x1->x == x2->x)) return 0; if(x1->y > x2->y) return 1; }; int main(){ int p = 1,i,vysl; moje pole[10001]; int p1,p2; scanf("%d\n",&p); while(p){ vysl = 0; for(i = 0; i < p; i++){ scanf("%d %d\n",&p1,&p2); pole[i].x = p1; pole[i].y = p2; }; // for(i = 0; i< p; i++) printf("%d %d\n",pole[i].x,pole[i].y); qsort(pole,p,sizeof(moje),&porovnejx ); for( i = 0; i < p; i=i+2) vysl += pole[i+1].y - pole[i].y; qsort(pole,p,sizeof(moje),&porovnejy ); for( i = 0; i < p; i=i+2) vysl += pole[i+1].x - pole[i].x; scanf("%d\n",&p); //vysl += 2*(maxx - minx); printf("The length of the fence will be %d units.\n",vysl); }; return 0; }