http://poj.org/problem?id=1675
/* @author:����acmilan_fan@yahoo.cn */
import java.io.*;
public class Main {
static double A = Math.PI*2/3;
public static void main(String[] args)throws Exception{
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
String s = br.readLine();
String[] ss;
int num = Integer.parseInt(s);
int x1, y1, x2, y2, x3, y3;
for(int i=0;i< num;i++){
s = br.readLine();
ss = s.split(" ",7);
x1 = Integer.parseInt(ss[1]);
y1 = Integer.parseInt(ss[2]);
x2 = Integer.parseInt(ss[3]);
y2 = Integer.parseInt(ss[4]);
x3 = Integer.parseInt(ss[5]);
y3 = Integer.parseInt(ss[6]);
System.out.println(checkPos(x1, y1, x2, y2, x3, y3)?"Yes":"No");
}
}
static boolean checkPos(int x1, int y1, int x2, int y2, int x3, int y3){
//if one is in the center, this is impossible
if(x1==0 && y1==0 || x2==0 && y2==0 || x3==0 && y3==0)
return false;
double angle = Math.atan2(x1, y1);
double angle2 = Math.atan2(x2, y2);
double angle3 = Math.atan2(x3, y3);
//if two points are of the same angle
if(angle==angle2 || angle2==angle3 || angle3==angle)
return false;
double d12 = get(angle, angle2);
double d23 = get(angle2, angle3);
double d31 = get(angle3, angle);
//120 degrees each
if(d12==d23 && d23==d31 && d31==d12)
return true;
//maximum distinction is less than 120 degrees
if(checkVal(d12) && checkVal(d23) && checkVal(d31))
return false;
return true;
}
static double get(double a, double a2){
double dis = Math.abs(a-a2);
return dis>Math.PI ? 2*Math.PI-dis:dis;
}
static boolean checkVal(double d){
return d<=A;
}
}
Meta
-
Recent Posts
Recent Comments
Archives
- May 2024
- April 2023
- February 2023
- January 2023
- December 2022
- November 2022
- September 2022
- June 2022
- July 2021
- January 2021
- February 2020
- September 2019
- March 2018
- February 2018
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- March 2016
- February 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- September 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
Categories
