#include using namespace std; #include using namespace atcoder; #define ll long long #define rep(i, n) for (int i = 0; i < (n); i++) #define P pair #define LP pair #define fi first #define se second #define pb push_back #define eb emplace_back #define all(s) s.begin(), s.end() #define rall(s) s.rbegin(), s.rend() template void chmax(T& a, T b) { a = max(a, b); }; template void chmin(T& a, T b) { a = min(a, b); }; int main() { int n; cin >> n; vector a; set s; ll cnt1 = 0; rep(i,n) { ll x; cin >> x; if (x == 0) cnt1++; else { a.pb(x); s.insert(x); } } if (a.size() <= 1 || s.size() <= 1) { cout << "Yes" << endl; return 0; } sort(all(a)); ll g = a[1]-a[0]; rep(i,a.size()-1) { if (a[i+1]-a[i] == 0) { cout << "No" << endl; return 0; } g = gcd(g, a[i+1]-a[i]); } ll cnt2 = 0; rep(i,a.size()-1) { cnt2 += (a[i+1]-a[i])/g-1; } if (cnt1 >= cnt2) cout << "Yes" << endl; else cout << "No" << endl; return 0; }