#include <bits/stdc++.h>
using namespace std;
int n;
int y[1000 + 10];
bool match(int i, int j, int a, int b) {
  return (b - a) * 1LL * (y[j] - y[i]) == (j - i) * 1LL * (y[b] - y[a]);
}
bool oka(int i, int j) {
  set<int> st;
  st.insert(i);
  st.insert(j);
  for (int k = 0; k < n; k++) {
    if (k == i || k == j) continue;
    if (match(i, j, i, k)) {
      st.insert(k);
    }
  }
  if (st.size() == n) return false;
  set<int> ss;
  for (int k = 0; k < n; k++) {
    if (st.find(k) != st.end()) continue;
    ss.insert(k);
  }
  if (ss.size() == 1) return true;
  for (auto it = ss.begin(); next(next(it)) != ss.end(); ++it) {
    auto jt = next(it);
    auto kt = next(jt);
    if (!match(*it, *jt, *it, *kt)) return false;
  }
  return match(i, j, *ss.begin(), *next(ss.begin()));
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &y[i]);
  }
  if (oka(0, 1) || oka(0, 2) || oka(1, 2))
    printf("Yes\n");
  else
    printf("No\n");
}
