Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <math.h>#include <iostream>using namespace std;int main(int argc, char* argv[]){double x,y,r;cin>>x>>y>>r;double min_x=ceil(x-r),max_x=floor(x+r);int resx,resy;double max_dis=0;for (int tmpx=max_x;tmpx>=min_x;--tmpx){double dy=sqrt(r*r-(x-tmpx)*(x-tmpx));double min_y=ceil(y-dy),max_y=floor(y+dy);double dis=(tmpx-x)*(tmpx-x)+(max_y-y)*(max_y-y);if (dis>max_dis){resx=tmpx;resy=max_y;max_dis=dis;}dis=(tmpx-x)*(tmpx-x)+(min_y-y)*(min_y-y);if (dis>max_dis){resx=tmpx;resy=min_y;max_dis=dis;}}cout<<resx<<" "<<resy<<endl;