#include<stdio.h>

#define FOR(i,a,b) for(int i=a; i<=b;i++)
#define MAX 40101

int X[MAX], Y[MAX];
int N;


int cross(int a, int b, int c)
{
	int ABx = X[b]-X[a];
	int ABy = Y[b]-Y[a];
	int ACx = X[c]-X[a];
	int ACy = Y[c]-Y[a];
	return (ABx*ACy - ABy*ACx);
}


bool prienik(int a1, int a2, int b1, int b2)
{
	int a=cross(a1,a2,b1);
	int b=cross(a1,a2,b2);
	if (a==0&&b==0) return 0;
	if (a<0&&b>0) return 1;
	if (a>0&&b<0) return 1;
	return 0;
}

int dot(int a,int b,int c)
{
	int ab0=X[b]-X[a];
	int ab1=Y[b]-Y[a];
	int bc0=X[c]-X[b];
	int bc1=Y[c]-Y[b];
	return ab0*bc0+ab1*bc1;
}

int eq(int a,int b)
{
	return X[a]==X[b]&&Y[a]==Y[b];
}

int pr(int a1,int a2,int b)
{
	if (dot(a1,a2,b)>0) return eq(a2,b);
	if (dot(a2,a1,b)>0) return eq(a1,b);
	if (cross(a1,a2,b)==0) return 1;
	return 0;
}

bool solve()
{
	FOR(i,0,N-1)
		FOR(j,0,N-1)
			if (i!=j&&(i+1)%N!=j&&pr(i,(i+1)%N,j)||
			   (prienik(i, (i+1)%N, j, (j+1) % N )&&
					prienik(j, (j+1) % N,i, (i+1)%N)))
			{
				//printf("%d %d\n",i,j);
				return false;
			}
	return true;
}

int main()
{
	while(scanf("%d",&N),N)
	{
		FOR(i,0,N-1)
			scanf("%d %d",&X[i], &Y[i]);
/*
		int area=0;
		X[N]=X[0],Y[N]=Y[0];
		int a=0,b=0;
		for(int i=1;i<N;++i)
		{
			int x1=X[i]-X[0];
			int y1=Y[i]-Y[0];
			int x2=X[i+1]-X[0];
			int y2=Y[i+1]-Y[0];
			int cr=x1*y2-x2*y1;
			if (cr<0) a=1;
			if (cr>0) b=1;
			area+=cr;
			printf("%d\n",cr);
		}
		//printf("%lf\n",area/2.);
		if (a&&b)
			printf("NO\n");
		else
			printf("YES\n");
		continue;
		
		FOR(i,0,N-1)
			if (cross(i,(i+1)%N,(i+2)%N)==0)
				X[(i+1)%N]=X[(i+2)%N],Y[(i+1)%N]=Y[(i+2)%N];
		FOR(i,0,N-1)
			printf("%d %d\n",X[i],Y[i]);*/
		if (solve())
			printf("YES\n");
		else
			printf("NO\n");
	}

	return 0;
}

