#include <bits/stdc++.h>
using namespace std;

//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//using namespace __gnu_pbds;
//typedef tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update> index_set;
//typedef tree<ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update>indexed_multiset;

#define ull         unsigned long long
#define ll          long long int
#define ld          long double
#define MOD         1000000007
#define pi          3.14159265358979323846
#define N           100005
#define sz(x)       ((int)(x).size())
#define test ll t;  cin >> t; while(t--)
#define all(x)      (x).begin(), (x).end()
#define ld          long double
#define bigint      int64_t
#define vll         vector<ll>
#define vpll        vector<pair<ll,ll>>
//#define mp          make_pair
#define pb          push_back
#define pll         pair<ll,ll>
#define vvll        vector<vector<ll>>
#define fi          first
#define se          second
#define ins         insert
#define endl        "\n"
#define rep(i,a,n)  for(ll (i) = a;(i) < (n); (i)++)
#define repn(i,a,n) for(ll (i) = a;(i) <= (n); (i)++)
#define repr(i,a,n) for(ll (i) = a;(i) >= (n); (i)--)

//-------------------DEBUGGING-----------------------

vector<string> vec_splitter(string s) {
    s += ',';
    vector<string> res;
    while (!s.empty()) {
        res.push_back(s.substr(0, s.find(',')));
        s = s.substr(s.find(',') + 1);
    }
    return res;
}
void debug_out(
    vector<string> __attribute__ ((unused)) args,
    __attribute__ ((unused)) int idx,
    __attribute__ ((unused)) int LINE_NUM) { cerr << endl; }
template <typename Head, typename... Tail>
void debug_out(vector<string> args, int idx, int LINE_NUM, Head H, Tail... T) {
    if (idx > 0) cerr << ", "; else cerr << "Line(" << LINE_NUM << ") ";
    stringstream ss; ss << H;
    cerr << args[idx] << " = " << ss.str();
    debug_out(args, idx + 1, LINE_NUM, T...);
}
#ifdef XOX
#define debug(...) debug_out(vec_splitter(#__VA_ARGS__), 0, __LINE__, __VA_ARGS__)
#else
#define debug(...) 42
#endif
//-----------------------------------------------------------------------

//will upsolve from now on. Date: 24th Oct 2020, DIV2 round 678 upto D.

void solve() {
    ll n; cin >> n;
    vpll v;
    rep(i, 0, n) {
        ll x, y;
        cin >> x >> y;
        v.pb({x, y});
    }
    sort(all(v));
    repn(i, 0, n - 3) {
        repn(j, i + 1, n - 2) {
            repn(k, j + 1, n - 1) {
                ll a = v[i].fi, b = v[i].se;
                ll c = v[j].fi, d = v[j].se;
                ll e = v[k].fi, f = v[k].se;
                ll k1 = d - b, k2 = c - a, k3 = f - d, k4 = e - c;
                //if (k2 > 0 && k4 > 0) {
                if ((double)k1 / k2 == (double)k3 / k4 ) {
                    cout << "Yes\n";
                    return;
                }
                //}
            }
        }
    }
    cout << "No\n";
}


int main() {


    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    solve();
    return 0;
}
#include<bits/stdc++.h> 
using namespace std; 
#define deb(x) cout <<"\n"<< (#x) << " = " << (x) << "\n"
const long long  INF = 1e18;
const long long mod=1e9+7 ;
#define ll long long int

bool iscolinear(int x1, int y1, int x2,  
               int y2, int x3, int y3) 
{ 
    int a = x1 * (y2 - y3) +  
            x2 * (y3 - y1) +  
            x3 * (y1 - y2); 
  
    if (a == 0) 
        return true; 
    else
        return false; 
}

void solve()
{
	int n;
	cin>>n;

	vector< pair<int,int> > a ;

	for(int i=0 ; i<n ; ++i)
	{
		int x,y;
		cin>>x>>y;
		a.push_back(make_pair(x,y));
	}
	
	for(int i=0 ; i<n ; ++i)
	{
		for(int j=i+1 ; j<n ; ++j)
		{
			for(int k=j+1 ; k<n ; ++k)
			{
				if(iscolinear(a[i].first,a[i].second,a[j].first,a[j].second,a[k].first,a[k].second))
					{
						cout<<"Yes\n";
						return ;
					}
			}
		}
	}
	cout<<"No\n";
}

int main()
{
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int t=1;
  // cin>>t;
  while(t--)
    solve();
}
/*
	
		y=mx+c
		5=m5+c

		

*/
