#include<fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
struct punct
{
int x,y;
};
punct p[100];
int x[100],best[5],n,lmax;
void Write()
{ for(int i=1;i<=4;i++) fout<<p[best[i]].x<<","<<p[best[i]].y<<" ";
}
int d2(punct a, punct b)
{
return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);
}
int patrat()
{
int d[7];
d[1]=d2(p[x[1]],p[x[2]]);
d[2]=d2(p[x[1]],p[x[3]]);
d[3]=d2(p[x[1]],p[x[4]]);
d[4]=d2(p[x[2]],p[x[3]]);
d[5]=d2(p[x[2]],p[x[4]]);
d[6]=d2(p[x[3]],p[x[4]]);
for(int i=1;i<6;i++)
for(int j=i+1;j<=6;j++)
if(d[i]>d[j])
{
int aux=d[i]; d[i]=d[j]; d[j]=aux;
}
if(d[1]==d[2] && d[2]==d[3] && d[3]==d[4] && d[5]==d[6]) return d[1];
else return 0;
}
void Comb(int k)
{ for(int i=x[k-1]+1;i<=n;i++)
{ x[k]=i;
if(k==4)
{
if(patrat() >lmax)
{
lmax=d2(p[x[1]],p[x[2]]);
for(int j=1;j<=4;j++) best[j]=x[j];
}
}
else Comb(k+1);
}
}
int main()
{ fin>>n;
for(int i=1;i<=n;i++) fin>>p[i].x>>p[i].y;
Comb(1);
Write();
fin.close();
fout.close();
return 0;
}
|