/*
	may God of speed-forces be with us !!

	--problem isnt, life is empty;
	--problem is, life is full of emptiness;
		a non-strugling pupil coder !!
*/

#include "bits/stdc++.h"
using namespace std;
#define pb push_back
#define F first
#define S second
//#define biGinf 9e+18
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define inpv(v) for(auto &x:v) cin>>x
#define otpv(v) for(auto &x:v) cout<<x<<nwl
#define otpv2(v) for(auto &x:v) cout<<x<<" "
#define CASES int tt;cin>>tt; while(tt--)
#define for0(i,n) for(int i=0; i<n; i++)
#define for1(i,n) for(int i=1; i<=n; i++)
#define forr(i,r,n) for(int i=r; i<=n; i++)
#define forj(j,n) for(int j=n; j>=0; j--)
#define forx(x,v) for(auto &x:v)
#define sz(v) (int)(v).size()
#define rz(n) resize(n)
#define vec(x) vector < x >
#define vvim(n,m,v) vvi v(n, vi(m))
using int64 = long long;
using vi = vector < int >;
using vi64 = vector < int64 >;
using mii = map <int , int >;
using vvi = vector < vi >;
using pii = pair < int , int >;
using vpii = vector < pii >;
const int inf = 2e9 + 7;
const char nwl = '\n';
const int mxx = 1e6 + 3;
int64 sumV(vi &v) {
	int64 s = 0;
	for (int x : v) {
		s += (int64)x;
	}
	return s;
}
int gcd(int a, int b) {
	if (!b) return a;
	return gcd(b, a % b);
}
//const int64 biGinf = 9e+18;
const string yo = "Yes\n", no = "No\n";


int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	//ur code

	int n;
	cin >> n;
	vpii v(n);
	for0(i, n) {
		cin >> v[i].F >> v[i].S;
	}

	std::map<int, int> x, y, z;


	for0(i, n) {
		x[v[i].F]++;
		y[v[i].S]++;
		z[v[i].F - v[i].S]++;
	}

	bool f = 0;

	for (auto e : x) {
		if (e.S >= 3)f = 1;
		if (f) break;
	}

	for (auto e : y) {
		if (e.S >= 3)f = 1;
		if (f) break;
	}
	for (auto e : z) {
		if (e.S >= 3)f = 1;
		if (f) break;
	}
	if (!f) {
		for0(i, n) {
			for (int j = i + 1; j < n; j++) {
				for (int k = j + 1; k < n; k++) {
					if ((v[i].F - v[j].F) and (v[i].F - v[k].F)) {
						if (((float)(v[i].S - v[j].S) / ((v[i].F - v[j].F))) == ((float)(v[i].S - v[k].S) / ((v[i].F - v[k].F)))) f = 1;
					}
					if (f) break;
				}
				if (f) break;
			}
			if (f) break;
		}
	}
	if (f) cout << yo;
	else cout << no;



	return 0;
}

#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i);
using ll = long long;

int main() {
  int n;
  cin >> n;
  vector<int> x(n), y(n);
  for (int i = 0; i < n; i++) {
    cin >> x.at(i) >> y.at(i);
  }

  string ans = "No";

  for (int i = 0; i < n; i++) {
    for (int j = i+1; j < n; j++) {
      for (int k = j+1; k < n; k++) {
        int x1 = x.at(j) - x.at(i);
        int y1 = y.at(j) - y.at(i);
        int x2 = x.at(k) - x.at(i);
        int y2 = y.at(k) - y.at(i);
        if (x1*y2 == x2*y1) {
          ans = "Yes";
        }
      }
    }
  }

  cout << ans << endl;
  return 0;
}