#include <bits/stdc++.h>
using namespace std;
constexpr int INF = 1e9 + 5;
constexpr long long INFL = 1e18;
int n;
struct point {
  int x, y;
};
vector<point> pkt;
inline long long ilo(point& a, point& b, point& c) {
  return ((long long)b.x - a.x) * ((long long)c.y - a.y) -
         ((long long)b.y - a.y) * ((long long)c.x - a.x);
}
bool sprawdz(point& a, point& b) {
  vector<int> smieci;
  for (int i = 0; i < n; i++)
    if (ilo(a, b, pkt[i]) != 0) smieci.push_back(i);
  if (smieci.size() < 3) return true;
  point c, d;
  c = pkt[smieci.back()];
  smieci.pop_back();
  d = pkt[smieci.back()];
  smieci.pop_back();
  for (int i : smieci)
    if (ilo(c, d, pkt[i]) != 0) return false;
  return true;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  pkt.resize(n);
  for (int i = 0; i < n; i++) cin >> pkt[i].x >> pkt[i].y;
  if (n <= 4) {
    cout << "YES\n";
    return 0;
  }
  if (sprawdz(pkt[0], pkt[1]) || sprawdz(pkt[0], pkt[2]) ||
      sprawdz(pkt[1], pkt[2]))
    cout << "YES\n";
  else
    cout << "NO\n";
  return 0;
}
