Problem:
Is-Convex

For a given polygon g, print "1" if g is a convex polygon, "0" otherwise. Here, in a convex polygon, all interior angles are less than or equal to 180 degrees.

g is represented by a sequence of points p1, p2,..., pn where line segments connecting pi and pi+1 (1 ≤ i ≤ n-1) are sides of the polygon. The line segment connecting pn and p1 is also a side of the polygon.

Input

g is given by coordinates of the points p1,..., pn in the following format:

n
x1 y1
x2 y2
:
xn yn

The first integer n is the number of points. The coordinate of a point pi is given by two integers xi and yi. The coordinates of points are given in the order of counter-clockwise visit of them.

Output

Print "1" or "0" in a line.

Constraints

3 ≤ n ≤ 100

-10000 ≤ xi, yi ≤ 10000

No point of the polygon will occur more than once.

Two sides of the polygon can intersect only at a common endpoint.

Sample Input 1

4
0 0
3 1
2 3
0 3

Sample Output 1

1

Sample Input 2

5
0 0
2 0
1 1
2 2
0 2

Sample Output 2

0

Solution in JAVA (judge verdict: Accepted)

import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.lang.reflect.Array;
import java.util.*;
public class Main {
	Scanner in = new Scanner(System.in);
	public static void main(String[] args) {
		new Main();
	}

	public Main() {
		new CGL_3B().doIt();
	}

	class CGL_3B{

		double cross(Point2D p1,Point2D p2){
			return p1.getX()*p2.getY()-p1.getY()*p2.getX();
		}
		int CCW(Point2D a,Point2D b,Point2D target){ //a-bの直線はtargetの右か左か
			Point2D q = new Point2D.Double(b.getX()-a.getX(),b.getY()-a.getY());
			Point2D r = new Point2D.Double(target.getX()-a.getX(),target.getY()-a.getY());
			if(cross(q, r)>0)return -1;//左側
			else if(cross(q,r)<0)return 1;//右側
			else return 0;//重なっている
		}
		
		void doIt(){
			int n = in.nextInt();
			Point2D[] p = new Point2D[n];
			for(int i=0;i<n;i++)p[i] = new Point2D.Double(in.nextDouble(), in.nextDouble());
			boolean sw = true;
			for(int i=0;i<n;i++){
//				System.out.println(CCW(p[i%n],p[(i+1)%n],p[(i+2)%n]));
				if(CCW(p[i%n],p[(i+1)%n],p[(i+2)%n])!=CCW(p[(i+1)%n],p[(i+2)%n],p[(i+3)%n])
						&&CCW(p[i%n],p[(i+1)%n],p[(i+2)%n])!=0&&CCW(p[(i+1)%n],p[(i+2)%n],p[(i+3)%n])!=0){
					sw=false;
					break;
				}
			}
			if(sw)System.out.println("1");
			else System.out.println("0");
		}
		
	}


}