/*
#pragma GCC optimize("Ofast")
#pragma GCC target("avx", "avx2", "fma")
#pragma GCC optimization("unroll-loops")
*/
#include <bits/stdc++.h>
using namespace std;
#define pi acos(-1)
#define IOS ios_base::sync_with_stdio(0); cin.tie(); cout.tie();
#define fi first
#define se second
#define pf push_front
#define pb push_back
#define eb emplace_back
#define mp make_pair
#define debug(x) cerr<<#x<<": "<<(x)<<'\n'
#define lb lower_bound
#define ub upper_bound
typedef long double ld;
typedef long long ll;
typedef unsigned long long ull;
const ll mod = 1e9+7;
const ll inf = 0x3f3f3f3f;
const ll llinf = 1e18;
const ll nax = 0;

int main(){
	IOS
	int n; cin >> n;
	vector<pair<int, int>>arr(n+5);
	for(int i=0;i<n;++i){
		cin >> arr[i].fi >> arr[i].se;
	}
	for(int i=0;i<n;++i){
		for(int j=0;j<n;++j){
			for(int k=0;k<n;++k){
				if(i==j || i==k || j==k) continue;
				int x1=arr[i].fi, x2=arr[j].fi, x3=arr[k].fi, y1=arr[i].se, y2=arr[j].se, y3=arr[k].se;
				ll satu=(x3-x1)*(y2-y1);
				ll dua=(y3-y1)*(x2-x1);
				if(satu==dua){
					cout << "Yes" << '\n';
					return 0;
				}
			}
		}
	}
	cout << "No" << '\n';
}
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i = 0; i< (n); i++)
using ll = long long;
using P = pair<int, int>;
using Graph = vector<vector<int>>;
template<class T> void chmax(T& a, T b){
    if(a < b){
        a = b;
    }
}
template<class T> void chmin(T& a, T b){
    if(a > b){
        a = b;
    }
}
int main()
{
    int n;
    cin >> n;
    vector<double>x(n);
    vector<double>y(n);

    rep(i,n)cin >> x[i] >> y[i];

    rep(i,n){
        rep(j,n){
            rep(k,n){
                if(i == j)continue;
                if(j == k)continue;
                if(i == k)continue;

                double a1 = (y[i] - y[j])/(x[i] - x[j]);
                double a2 = (y[j] - y[k])/(x[j] - x[k]);

                if(a1 == a2){
                    cout << "Yes" << endl;
                    return 0;
                }

            }
        }
    }

    cout << "No" << endl;
    return 0;
}