// Online C compiler to run C program online
#include<stdio.h>
void midPointCircleDraw(int x_centre, int y_centre, int r)
{
int x = r, y = 0;
printf("(%d, %d) ", x
+ x_centre
, y
+ y_centre
);
if (r > 0)
{
printf("(%d, %d) ", x
+ x_centre
, -y
+ y_centre
); printf("(%d, %d) ", y
+ x_centre
, x
+ y_centre
); printf("(%d, %d)\n", -y
+ x_centre
, x
+ y_centre
); }
int P = 1 - r;
while (x > y)
{
y++;
if (P <= 0)
P = P + 2*y + 1;
else
{
x--;
P = P + 2*y - 2*x + 1;
}
if (x < y)
break;
printf("(%d, %d) ", x
+ x_centre
, y
+ y_centre
); printf("(%d, %d) ", -x
+ x_centre
, y
+ y_centre
); printf("(%d, %d) ", x
+ x_centre
, -y
+ y_centre
); printf("(%d, %d)\n", -x
+ x_centre
, -y
+ y_centre
);
if (x != y)
{
printf("(%d, %d) ", y
+ x_centre
, x
+ y_centre
); printf("(%d, %d) ", -y
+ x_centre
, x
+ y_centre
); printf("(%d, %d) ", y
+ x_centre
, -x
+ y_centre
); printf("(%d, %d)\n", -y
+ x_centre
, -x
+ y_centre
); }
}
}
int main()
{
midPointCircleDraw(0, 0, 3);
return 0;
}
Ly8gT25saW5lIEMgY29tcGlsZXIgdG8gcnVuIEMgcHJvZ3JhbSBvbmxpbmUKI2luY2x1ZGU8c3RkaW8uaD4KCgp2b2lkIG1pZFBvaW50Q2lyY2xlRHJhdyhpbnQgeF9jZW50cmUsIGludCB5X2NlbnRyZSwgaW50IHIpCnsKCWludCB4ID0gciwgeSA9IDA7CgkKCQoJcHJpbnRmKCIoJWQsICVkKSAiLCB4ICsgeF9jZW50cmUsIHkgKyB5X2NlbnRyZSk7CgkKCQoJaWYgKHIgPiAwKQoJewoJCXByaW50ZigiKCVkLCAlZCkgIiwgeCArIHhfY2VudHJlLCAteSArIHlfY2VudHJlKTsKCQlwcmludGYoIiglZCwgJWQpICIsIHkgKyB4X2NlbnRyZSwgeCArIHlfY2VudHJlKTsKCQlwcmludGYoIiglZCwgJWQpXG4iLCAteSArIHhfY2VudHJlLCB4ICsgeV9jZW50cmUpOwoJfQoJCgkKCWludCBQID0gMSAtIHI7Cgl3aGlsZSAoeCA+IHkpCgl7IAoJCXkrKzsKCQkKCQoJCWlmIChQIDw9IDApCgkJCVAgPSBQICsgMip5ICsgMTsKCQkJCgkKCQllbHNlCgkJewoJCQl4LS07CgkJCVAgPSBQICsgMip5IC0gMip4ICsgMTsKCQl9CgkJCgoJCWlmICh4IDwgeSkKCQkJYnJlYWs7CgkJCgkKCQlwcmludGYoIiglZCwgJWQpICIsIHggKyB4X2NlbnRyZSwgeSArIHlfY2VudHJlKTsKCQlwcmludGYoIiglZCwgJWQpICIsIC14ICsgeF9jZW50cmUsIHkgKyB5X2NlbnRyZSk7CgkJcHJpbnRmKCIoJWQsICVkKSAiLCB4ICsgeF9jZW50cmUsIC15ICsgeV9jZW50cmUpOwoJCXByaW50ZigiKCVkLCAlZClcbiIsIC14ICsgeF9jZW50cmUsIC15ICsgeV9jZW50cmUpOwoJCQoJCgkJaWYgKHggIT0geSkKCQl7CgkJCXByaW50ZigiKCVkLCAlZCkgIiwgeSArIHhfY2VudHJlLCB4ICsgeV9jZW50cmUpOwoJCQlwcmludGYoIiglZCwgJWQpICIsIC15ICsgeF9jZW50cmUsIHggKyB5X2NlbnRyZSk7CgkJCXByaW50ZigiKCVkLCAlZCkgIiwgeSArIHhfY2VudHJlLCAteCArIHlfY2VudHJlKTsKCQkJcHJpbnRmKCIoJWQsICVkKVxuIiwgLXkgKyB4X2NlbnRyZSwgLXggKyB5X2NlbnRyZSk7CgkJfQoJfSAKfQoKCmludCBtYWluKCkKewoJbWlkUG9pbnRDaXJjbGVEcmF3KDAsIDAsIDMpOwoJcmV0dXJuIDA7Cn0K