#include <bits/stdc++.h>
using namespace std;
int n, tx, ty;
vector<pair<int, int> > ar;
int vis[100010];
bool check(int first, int second, int x1, int y1, int x2, int y2) {
  if ((1LL * x2 - 1LL * x1) * 1LL * (1LL * second - 1LL * y1) ==
      (1LL * y2 - 1LL * y1) * 1LL * (1LL * first - 1LL * x1))
    return true;
  return false;
}
int main(int argc, char const *argv[]) {
  scanf("%d", &n);
  ar.clear();
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &tx, &ty);
    ar.push_back({tx, ty});
  }
  if (n == 1) {
    cout << "YES\n";
  } else if (n == 2) {
    cout << "YES\n";
  } else {
    memset(vis, 0, sizeof(vis));
    for (int i = 0; i < n; i++) {
      if (check(ar[i].first, ar[i].second, ar[0].first, ar[0].second,
                ar[1].first, ar[1].second)) {
        vis[i] = 1;
      }
    }
    int x1, y1, x2, y2, flag = 0, hold1, hold2;
    for (int j = 0; j < n; j++) {
      if (!vis[j]) {
        flag++;
        x1 = ar[j].first;
        y1 = ar[j].second;
        vis[j] = 1;
        hold1 = j;
        break;
      }
    }
    for (int j = 0; j < n; j++) {
      if (!vis[j]) {
        flag++;
        x2 = ar[j].first;
        y2 = ar[j].second;
        int fgh = 1;
        if (check(ar[0].first, ar[0].second, x1, y1, x2, y2) ||
            check(ar[1].first, ar[1].second, x1, y1, x2, y2)) {
          fgh = 0;
          hold2 = j;
          continue;
        }
        if (fgh) {
          vis[j] = 1;
          hold2 = j;
        }
        break;
      }
    }
    vis[hold2] = 1;
    if (flag == 0 || flag == 1) {
      cout << "YES\n";
    } else {
      for (int i = 0; i < n; i++) {
        if (check(ar[i].first, ar[i].second, x1, y1, x2, y2)) {
          vis[i] = 1;
        }
      }
      flag = 0;
      for (int i = 0; i < n; i++) {
        if (!vis[i]) {
          flag = 1;
        }
      }
      if (!flag)
        cout << "YES\n";
      else {
        memset(vis, 0, sizeof(vis));
        for (int i = 0; i < n; i++) {
          if (check(ar[i].first, ar[i].second, ar[0].first, ar[0].second, x1,
                    y1))
            vis[i] = 1;
          else if (check(ar[i].first, ar[i].second, ar[1].first, ar[1].second,
                         x2, y2))
            vis[i] = 1;
        }
        flag = 0;
        for (int i = 0; i < n; i++) {
          if (!vis[i]) {
            flag = 1;
          }
        }
        if (!flag) {
          cout << "YES\n";
        } else {
          memset(vis, 0, sizeof(vis));
          for (int i = 0; i < n; i++) {
            if (check(ar[i].first, ar[i].second, ar[0].first, ar[0].second, x2,
                      y2))
              vis[i] = 1;
            else if (check(ar[i].first, ar[i].second, ar[1].first, ar[1].second,
                           x1, y1))
              vis[i] = 1;
          }
          flag = 0;
          for (int i = 0; i < n; i++) {
            if (!vis[i]) {
              flag = 1;
            }
          }
          if (flag)
            cout << "NO\n";
          else
            cout << "YES\n";
        }
      }
    }
  }
  return 0;
}
