通过面积,,来判断是否在三角行内,,
//allblue All Rights Reserved
//.....
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <math.h>
#include <string>
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <limits.h>
#include <string.h>
#include <algorithm>
#include <functional>
using namespace std;
#define PI acos(-1)
#define eps 1e-5
#define INF 1e16
typedef long long ll;
int sgn(double d) {
return (d>+eps)-(d<-eps);
}
int fcmp(double a, double b) {
return sgn(a-b);
}
struct Pnt{
char name[3];
double x,y;
Pnt(){};
Pnt(double a,double b){
x=a,y=b;
}
friend Pnt operator + (Pnt a,Pnt b){
Pnt c;
c.x=a.x+b.x;
c.y=a.y+b.y;
return c;
}
friend Pnt operator - (Pnt a,Pnt b){
Pnt c;
c.x=a.x-b.x;
c.y=a.y-b.y;
return c;
}
friend double operator * (Pnt a,Pnt b){
return a.x*b.x+a.y*b.y;
}
friend double operator ^ (Pnt a,Pnt b){
return a.x*b.y-a.y*b.x;
}
friend bool operator == (Pnt a,Pnt b) {
return fcmp(a.x, b.x)==0 && fcmp(a.y, b.y)==0;
}
};
struct Seg{
Pnt a;
Seg(){};
Seg(Pnt x,Pnt y){
a=y-x;
}
friend Seg operator + (Seg a,Seg b){
Seg c;
c.a.x=a.a.x+b.a.x;
c.a.y=a.a.y+b.a.y;
return c;
}
friend Seg operator - (Seg a,Seg b){
Seg c;
c.a.x=a.a.x-b.a.x;
c.a.y=a.a.y-b.a.y;
return c;
}
friend double operator * (Seg a,Seg b){
return a.a.x*b.a.x+a.a.y*b.a.y;
}
friend double operator ^ (Seg a,Seg b){
return a.a.x*b.a.y-a.a.y*b.a.x;
}
double length(){
return sqrt(a.x*a.x+a.y*a.y);
}
};
double ffabs(double data){
if (data<0) return -data;
return data;
}
int main()
{
int n;
while(~scanf("%d",&n)&&n){
Pnt po[20];
for (int i=0;i<n;i++){
scanf("%s%lf%lf",po[i].name,&po[i].x,&po[i].y);
}
char as[5];
double anss=0;
for (int i=0;i<n-2;i++){
for (int is=i+1;is<n-1;is++){
for (int j=is+1;j<n;j++){
int flag=0;
for (int k=0;k<n;k++){
if (k!=i&&k!=is&&k!=j){
double mian1=(0.5*ffabs((po[is]-po[i])^(po[j]-po[i])));
double mian2=0.5*ffabs((po[i]-po[k])^(po[is]-po[k]));
double mian3=0.5*ffabs((po[j]-po[k])^(po[is]-po[k]));
double mian4=0.5*ffabs((po[i]-po[k])^(po[j]-po[k]));
if(sgn(mian1-mian2-mian3-mian4)==0){
flag=1;
break;
}
}
}
if (!flag){
if (anss<(0.5*ffabs((po[is]-po[i])^(po[j]-po[i])))){
anss=0.5*ffabs((po[is]-po[i])^(po[j]-po[i]));
as[0]=po[i].name[0];
as[1]=po[is].name[0];
as[2]=po[j].name[0];
as[3]='\0';
}
}
}
}
}
sort(as,as+3);
printf("%s\n",as);
}
return 0;
}