http://codeforces.com/problemset/problem/18/A
/**
CF18A 计算几何
题目大意:给出三个点,保证能构成三角形,判断是否是直角三角形,如果不是对于三个点中随意移动一个点的坐标1,是否能构成直角三角形
解题思路:利用向量。有一个坑,点的坐标平移后不能保证还能构成三角形,因此要特别判断
*/
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
int x1,x2,x3,y1,y2,y3;
bool ok(int x1,int y1,int x2,int y2,int x3,int y3)
{
int a=x2-x1,a1=y2-y1,b=x3-x1,b1=y3-y1;
int x=x1-x2,xx=y1-y2,y=x3-x2,yy=y3-y2;
int p=x1-x3,pp=y1-y3,q=x2-x3,qq=y2-y3;
if(a*b1==b*a1)return 0;///判断是否能构成三角形
if(a*b+b1*a1==0||x*y+yy*xx==0||p*q+qq*pp==0)
return 1;
return 0;
}
int main()
{
while(~scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3))
{
if(ok(x1,y1,x2,y2,x3,y3))
printf("RIGHT\n");
else if(ok(x1+1,y1,x2,y2,x3,y3)||ok(x1,y1+1,x2,y2,x3,y3)||ok(x1,y1,x2+1,y2,x3,y3)||ok(x1,y1,x2,y2+1,x3,y3)||ok(x1,y1,x2,y2,x3+1,y3)||ok(x1,y1,x2,y2,x3,y3+1)||
ok(x1-1,y1,x2,y2,x3,y3)||ok(x1,y1-1,x2,y2,x3,y3)||ok(x1,y1,x2-1,y2,x3,y3)||ok(x1,y1,x2,y2-1,x3,y3)||ok(x1,y1,x2,y2,x3-1,y3)||ok(x1,y1,x2,y2,x3,y3-1))
printf("ALMOST\n");
else
printf("NEITHER\n");
}
return 0;
}