样例二
#include<cstdio>
#include<cmath>
#define db double
using namespace std;
struct pt
{
int n; db x,y;
}p[100010];
int n;
bool Just_do_it(pt a,pt b)
{
db a1,b1,c1,a2,b2,c2;
a1=b.y-a.y,b1=a.x-b.x,c1=a.y*(b.x-a.x)+a.x*(a.y-b.y);
for(int i=1;i<=3;i++)
if(p[i].n!=a.n&&p[i].n!=b.n)
{
pt c=p[i];
a2=a.y-c.y,b1=c.x-a.x,c1=c.y*(a.x-c.x)+c.x*(c.y-a.y);
}
//printf("l1:%lfx+%lfy+%lf=0\n",a1,b1,c1);
//printf("l2:%lfx+%lfy+%lf=0\n",a2,b2,c2);
for(int j=4;j<=n;j++)
if(!(a1*p[j].x+b1*p[j].y+c1==0||a2*p[j].x+b2*p[j].y+c2==0))
return 0;
return 1;
}
int main()
{
scanf("%d",&n);
if(n<=4) return !puts("YES");
for(int i=1;i<=n;i++)
scanf("%lf %lf",&p[i].x,&p[i].y),p[i].n=i;
if(Just_do_it(p[1],p[2])||Just_do_it(p[2],p[3])||Just_do_it(p[1],p[3]))
puts("YES");
else puts("NO");
return 0;
}