#include<bits/stdc++.h>
using namespace std;
const double eps=1e-7;
struct point {
	double x,y;
	friend bool operator<(point a,point b) {
		if(a.x==b.x)return a.y<b.y;
		return a.x<b.x;
	}
} p[205];
int n;
int main() {
	int x,y;
	scanf("%d",&n);
	for(register int i=1; i<=n; i++) {
		scanf("%lf%lf",&p[i].x,&p[i].y);
	}
	sort(p+1,p+n+1);
	for(register int i=1; i<n-1; i++) {
		for(register int j=i+1; j<n; j++) {
			for(register int k=j+1; k<=n; k++) {
				double k1=(p[j].y-p[i].y)/(p[j].x-p[i].x),k2=(p[k].y-p[j].y)/(p[k].x-p[j].x);
				if(fabs(k1-k2)<eps||(p[j].x==p[i].x&&p[k].x==p[j].x)) {
					puts("Yes");
					return 0;
				}
			}
		}
	}
	puts("No");
	return 0;
}
/* by Natsu Kinmoe */
#include <bits/stdc++.h>
using namespace std;
#define SZ(x)               ((int)(x).size())
#define all(x)              (x).begin(), (x).end()
#define loop(i, n)          for(int i = 0; i < (n); ++i)
#define cont(i, n)          for(int i = 1; i <= (n); ++i)
#define circ(i, a, b)       for(int i = (a); i <= (b); ++i)
#define range(i, a, b, c)   for(int i = (a); ((c) > 0 ? i <= (b) : i >= (b)); i += (c))
#define foreach(it, v)      for(__typeof((v).begin()) it = (v).begin(); it != (v).end(); ++it)
#define y0          y0O0OO00OO0OO0OO0OOO00OO0OO0O0O000OO0
#define y1          y1II11II11III11I1III11II111IIII1II1I1
#define pub         push_back
#define pob         pop_back
#define mak         make_pair
typedef long long   ll;
typedef long double lf;
const int   Inf = 0x3f3f3f3f;
const ll    INF = 0x3f3f3f3f3f3f3f3fll;
/* Source code starts here */

int n;
int x[105], y[105];

int main() {
	cin >> n;
	cont(i, n) cin >> x[i] >> y[i];
	bool can = 0;
	cont(i, n) circ(j, i + 1, n) circ(k, j + 1, n) {
		int nx = x[j] - x[i], ny = y[j] - y[i];
		int mx = x[k] - x[i], my = y[k] - y[i];
		if(nx * my - ny * mx == 0) can = 1;
	}
	puts(can ? "Yes" : "No");
	return 0;
}