#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
struct point2D
{
int x;
int y;
};
float max(float a, float b)
{
if (a>b)
return a;
else
return b;
}
void inputPoint(vector<point2D> point)
{
int i;
int n;
point2D temp;
cout << "Hay nhap so diem: ";
cin >> n;
point.resize(n);
for (i=1;i<=(n);i++)
{
cout << "Hay nhap diem thu " << i << endl ;
cin >> temp.x >> temp.y;
point.push_back(point2D()); //emplace_back()
point[i-1].x=temp.x;
point[i-1].y=temp.y;
}
cout << "Complete";
}
float distance(point2D pt1, point2D pt2)
{
return sqrt(pow(double(pt1.x-pt2.x),2)+pow(double(pt1.y-pt2.y),2));
}
float findDis(vector<point2D> point)
{
int size=point.size();
float maximum=0;
int i,j;
for (i=0;i<size;i++)
for (j=0;j<size;i++)
maximum=max(maximum,distance(point[i],point[j]));
return maximum;
}
int main()
{
vector<point2D> point;
int n;
inputPoint(point);
cout << "Khoang cach lon nhat la: " << findDis(point);
getchar();
getchar();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdAlwb2ludDJECnsKCWludCB4OwoJaW50IHk7Cn07CmZsb2F0CW1heChmbG9hdCBhLCBmbG9hdCBiKQp7CglpZiAoYT5iKQoJCXJldHVybiBhOwoJZWxzZSAKCQlyZXR1cm4gYjsKfQp2b2lkCWlucHV0UG9pbnQodmVjdG9yPHBvaW50MkQ+IHBvaW50KQp7CglpbnQgaTsKCWludCBuOwoJcG9pbnQyRCB0ZW1wOwoJY291dCA8PCAiSGF5IG5oYXAgc28gZGllbTogIjsKCWNpbiA+PiBuOwoJcG9pbnQucmVzaXplKG4pOwoJZm9yIChpPTE7aTw9KG4pO2krKykKCXsKCQljb3V0IDw8ICJIYXkgbmhhcCBkaWVtIHRodSAiIDw8IGkgPDwgZW5kbCA7CgkJY2luID4+IHRlbXAueCA+PiB0ZW1wLnk7CgkJcG9pbnQucHVzaF9iYWNrKHBvaW50MkQoKSk7ICAvL2VtcGxhY2VfYmFjaygpCgkJcG9pbnRbaS0xXS54PXRlbXAueDsKCQlwb2ludFtpLTFdLnk9dGVtcC55OwoJfQoJY291dCA8PCAiQ29tcGxldGUiOwp9CmZsb2F0CWRpc3RhbmNlKHBvaW50MkQgcHQxLCBwb2ludDJEIHB0MikKewoJcmV0dXJuIHNxcnQocG93KGRvdWJsZShwdDEueC1wdDIueCksMikrcG93KGRvdWJsZShwdDEueS1wdDIueSksMikpOwp9CmZsb2F0CWZpbmREaXModmVjdG9yPHBvaW50MkQ+IHBvaW50KQp7CglpbnQgc2l6ZT1wb2ludC5zaXplKCk7CglmbG9hdCBtYXhpbXVtPTA7CglpbnQgaSxqOwoJZm9yIChpPTA7aTxzaXplO2krKykKCQlmb3IgKGo9MDtqPHNpemU7aSsrKQoJCQltYXhpbXVtPW1heChtYXhpbXVtLGRpc3RhbmNlKHBvaW50W2ldLHBvaW50W2pdKSk7CglyZXR1cm4JbWF4aW11bTsKfQoKaW50IG1haW4oKQp7Cgl2ZWN0b3I8cG9pbnQyRD4gcG9pbnQ7CglpbnQgbjsKCWlucHV0UG9pbnQocG9pbnQpOwoJY291dCA8PCAiS2hvYW5nIGNhY2ggbG9uIG5oYXQgbGE6ICIgPDwgZmluZERpcyhwb2ludCk7CglnZXRjaGFyKCk7CglnZXRjaGFyKCk7CglyZXR1cm4gMDsKfQ==