#pragma region おまじない
#include "bits/stdc++.h"
 
#pragma warning(disable : 4996)
 
typedef long long ll;
#define all(x) (x).begin(), (x).end()  // sortなどの引数を省略
#define rep(i, n) for (ll i = 0; i < (ll)(n); i++)
#define max3(x, y, z) max(x, max(y, z))
#define min3(x, y, z) min(x, min(y, z))
 
#ifdef _MSC_FULL_VER  //デバッグ出力
#define dout cout
#define debug() if (true)
#define check(x) std::cout << "★" << #x << "の値:" << (x) << endl
#define pass(x) std::cout << "☆" << x << endl
#else
#define dout \
  if (false) cout
#define debug() if (false)
#define check(x) \
  if (false) cout << "★" << #x << "の値:" << (x) << endl
#define pass(x) \
  if (false) cout << "☆" << x << endl
#endif
 
using namespace std;
//#define int long long;
double dist(double x1, double y1, double x2, double y2) {
	return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
ll idist(ll x1, ll y1, ll x2, ll y2) {
	return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
}
#pragma endregion
signed main(){
    ll N;
    cin >> N;
    vector<ll> x(N);
    vector<ll> y(N);
    rep(i,N){
        cin >> x[i] >> y[i];
    }
    ll f = 0;
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            for (int k = 0; k < N; k++) {
                if(i != j and j != k and k != i){
                    //cout << i << j << k << endl;
                    if(x[j] == x[k] and x[i] == x[j]){
                        cout << "Yes";
                       return 0;
                    }
                    if(y[j] == y[k] and y[i] == y[j]){
                        cout << "Yes";
                       return 0;
                    }
                    if(x[j]-x[k]==0)break;
                    if(y[j]-y[k]==0)break;
                    double a = (double)((x[i]-x[j])) / (double)((x[j]-x[k]));
                    if((double)(y[i]-y[j]) / (double)(y[j]-y[k])==a){
                    //cout << a << " " << i << j << k << endl;
                       cout << "Yes";
                       return 0;
                    }
                }
            }
        }
    }
    cout << "No";
}

#include <bits/stdc++.h>
using namespace std;
 
int main() {
	int N;
	cin >> N;

	vector<int[2]> vec(N);

	for (int i = 0; i < N; ++i) {
		cin >> vec.at(i)[0] >> vec.at(i)[1];
	}

	bool isAns = false;

	for (int i = 0; i < N - 2; ++i) {
		for (int j = 1; j < N - 1; ++j) {
			if (i == j) {
				continue;
			}
			for (int k = 2; k < N; ++k) {
				if (i == k || j == k) {
					continue;
				}
				int dx1 = vec.at(i)[0] - vec.at(j)[0];
				int dy1 = vec.at(i)[1] - vec.at(j)[1];

				int dx2 = vec.at(i)[0] - vec.at(k)[0];
				int dy2 = vec.at(i)[1] - vec.at(k)[1];

				if (dx1 * dy2 == dy1 * dx2) {
					isAns = true;
					break;
				}
			}

			if (isAns) {
				break;
			}
		}

		if (isAns) {
			break;
		}
	}

	if (isAns) {
		cout << "Yes" << endl;
	}
	else {
		cout << "No" << endl;
	}
 }
